Dates¶
Dissenya les funcions següents i desa-les al mòdul dates
(fitxer dates.py):
La funció
edat()que rep com a paràmetres la data de naixement d’una persona i la data actual, i a partir d’aquestes dues dates calcula quants anys té la persona que és el resultat que retorna.Cada data es representa mitjançant tres enters (
int), el dia, el mes i l’any.Per exemple:
>>> e = edat(10, 4, 1990, 23, 5, 2013) >>> e 23 >>> e = edat(10, 4, 1990, 5, 3, 2013) >>> e 22
Pots descarregar el fitxer amb tests
test-dates1.txtLa funció
completa_any()que rep com a paràmetre un any i un segle. El valor de l’any està entre 0 i 99, és a dir, no conté el segle. La funció retorna l’any complet calculat afegint el segle a l’any.Per exemple:
>>> a = completa_any(57, 20) >>> a 1957 >>> a = completa_any(16, 21) >>> a 2016
Pots descarregar el fitxer amb tests
test-dates2.txtLa funció
edat_21()que rep les mateixes dades que la funció edat de més amunt, i calcula l’edat d’una persona igual que ho fa edat. L’única diferència és que els anys de les dates poden ser complets, amb el segle, o sense el segle. Suposarem que els anys sense segle (entre 0 i 99) corresponen al segle XXI.Per resoldre aquesta funció heu de cridar les funcions edat i completa_any que heu resolt prèviament.
Per exemple:
>>> e = edat_21(10, 4, 1990, 23, 5, 13) >>> e 23 >>> e = edat_21(10, 4, 3, 5, 3, 2013) >>> e 9
Pots descarregar el fitxer amb tests
test-dates3.txtLa funció
compara_dates()que donats 6 enters dia1, mes1, any1, dia2, mes2 i any2, que representen dues dates, retorni -1 si la primera data és anterior a la segona, 0 si coincideixen i 1 si la primera data és posterior a la segona.Per exemple:
>>> c = compara_dates(10, 4, 1917, 8, 2, 1923) >>> c -1 >>> c = compara_dates(10, 4, 1917, 8, 4, 1917) >>> c 1 >>> c = compara_dates(10, 4, 1917, 10, 4, 1917) >>> c 0
Pots descarregar el fitxer amb tests
test-dates4.txtLes funcions
data_anterior(),data_igual()idata_posterior()que donades dues dates retornin True si la primera data és anterior, igual o posterior a la segona respectivament. Altrament han de retornar False.Per resoldre aquestes funcions heu de cridar la funció compara_dates.
Per exemple:
>>> c = data_anterior(10, 4, 1917, 8, 2, 1923) >>> c True >>> c = data_igual(10, 4, 1917, 8, 2, 1923) >>> c False >>> c = data_posterior(10, 4, 1917, 8, 2, 1923) >>> c False >>> c = data_anterior(10, 4, 1917, 8, 4, 1917) >>> c False >>> c = data_igual(10, 4, 1917, 8, 4, 1917) >>> c False >>> c = data_posterior(10, 4, 1917, 8, 4, 1917) >>> c True >>> c = data_anterior(10, 4, 1917, 10, 4, 1917) >>> c False >>> c = data_igual(10, 4, 1917, 10, 4, 1917) >>> c True >>> c = data_posterior(10, 4, 1917, 10, 4, 1917) >>> c False
Pots descarregar el fitxer amb tests
test-dates5.txt
Solució
Disposeu de solucions al fitxer dates.py