# -*- coding: utf-8 -*-
def oblicz(rok, miesiac, dzien):
"""\nFunkcja wylicza ile dni pozostalo do sylwestra.
Przyklad uzycia - oblicz(rok,miesiac,dzien)
oblicz(1990,4,2)
Funkcja uwzglednia rok przystepny, a takze sprawdza poprawnosc wprowadzonych danych.
"""
trzyzero = []
trzyjeden = []
if (rok % 4 == 0) and (rok % 100 != 1) or (rok % 400 == 0):
luty = 29
else:
luty = 28
if (miesiac > 12) or (miesiac < 1):
return "Blad!"
elif (dzien > 31) or (dzien < 1) or (dzien > luty):
return "Blad!"
elif (rok > 2011):
return "Blad! Maksymalny rok, 2011!"
for i in [2,4,6,9,11]:
if i == miesiac:
trzyzero.append(i)
elif i > miesiac:
trzyzero.append(i)
if 2 in trzyzero:
zlicz = ((len(trzyzero)-1)*30)+luty
else:
zlicz = len(trzyzero)*30
for i in [1,3,5,7,8,10,12]:
if i == miesiac:
trzyjeden.append(i)
elif i > miesiac:
trzyjeden.append(i)
zlicz_2 = len(trzyjeden)*31
return zlicz+zlicz_2-dzien
Funkcja obliczająca ile pozostało do sylwestra 2006 od roku bazowego.
# -*- coding: utf-8 -*-
# 366 - rok przystepny
# 365 - rok nieprzystepny
def oblicz(rok, miesiac, dzien):
"""Funkcja oblicza ile pozostalo do sylwestra 2006 od roku bazowego.
Przyklad uzycia
oblicz(rok,miesiac,dzien)
oblicz(1990,10,12)"""
# zamiana wartosc podanej ( dzien ) na liczbe calkowita
dzien = int(dzien)
# sprawdzanie czy rok jest wiekszy od 2006
if (rok >= 2006):
return "Funkcja oblicza do 2006 roku!"
# puste lity, w ktorych będę zapisywane miesiace a takze suma dni roku
zero = []
jeden = []
suma = []
# sprawdzam czy podany rok jest przystepny
if (rok % 4 == 0) and (rok % 100 != 1) or (rok % 400 == 0):
luty = 29
else:
luty = 28
# sprawdzanie wyjatkow
if (miesiac > 12) or (miesiac < 1):
return "Blad!"
elif (dzien > 31) or (dzien < 1) or (dzien > luty):
return "Blad!"
# obliczam dni do sylwestra dla roku bazowego ( miesiace 30-dniowe )
for i in [2,4,6,9,11]:
if i == miesiac:
zero.append(i)
elif i > miesiac:
zero.append(i)
# sprawdzanie czy w liscie 'zero' jest luty
if 2 in zero:
zlicz = ((len(zero)-1)*30)+luty
else:
zlicz = len(zero)*30
# obliczam dni do sylwestra dla roku bazowego ( miesiace 31-dniowe )
for i in [1,3,5,7,8,10,12]:
if i == miesiac:
jeden.append(i)
elif i > miesiac:
jeden.append(i)
zlicz_2 = len(jeden)*31
# czyszczenie list z wartosc
del zero[
del jeden[
# zapisanie wyniku do listy 'suma'
wynik = zlicz+zlicz_2-dzien
suma.append(wynik)
# w petli obliczam dni az do roku 2006, bez rok bazowego
while rok:
# zwiekszam rok o 1
rok += 1
# sprawdzam czy rok = 2006, jak nie - petla idzie dalej
if rok == 2006:
return sum(suma)
break
elif rok >= 2006:
return "Blad!"
# sprawdzam czy podany rok jest przystepny
if (rok % 4 == 0) and (rok % 100 != 1) or (rok % 400 == 0):
luty = 29
else:
luty = 28
# obliczam dni w miesiacach 30-dniowych
for i in [2,4,6,9,11]:
zero.append(i)
zlicz = ((len(zero)-1)*30)+luty
# obliczam dni w miesiach 31-dniowych
for i in [1,3,5,7,8,10,12]:
jeden.append(i)
zlicz_2 = len(jeden)*31
# zapisanie wyniku do listy 'suma'
wynik = zlicz+zlicz_2
suma.append(wynik)
# czyszczenie list z zwartosci
del zero[
del jeden[
continue
Użytkownik kur3k edytował ten post 04.04.2010 22:30