Salve a tutti e buon anno,

ho dei problemi con la gestione di date in Python. Mi sono letto per
bene la documentazione del modulo time e ho anche fatto qualche ricerca,
ma non riesco a capire come fare una somma tra date.

Ad esempio, vorrei una cosa che, avendo come argomenti una time.struct_time:
(1970, 1, 1, 1, 0, 0, 3, 1, 0)
e un lasso di tempo, magari codificato con la stessa convenzione:
(0,1,2,1,3,0)
(ovvero 1 mese, 2 giorni, 1 ora e tre minuti)
mi restituisca la time.struct_time:
(1970, 2, 3, 2, 3, 0, 1, 34, 0)

N.B: /non/ mi basterebbe fare:
time.localtime(time.mktime((1970, 1, 1, 1, 0, 0, 3, 1,
0))+time.mktime((1970,2,3,2,3,0,0,0,0)))
infatti in /questo/ caso funziona, ma in generale assume che un mese sia
lungo 31 giorni, che un anno sia bisestile, si dimentica i secondi che
ogni tanto vengono inseriti d'estate...
Io voglio che quando sommo un anno venga sommato proprio un anno, non
365/366 giorni; quando sommo un mese, sia sommato un mese, non
31/30/29/38 giorni e quando sommo un giorno sia sommato un giorno, a
prescindere dall'eventualità in cui quel giorno ha avuto un secondo in
più...

È una cosa che non sarebbe troppo complicato realizzare (basta
memorizzare la lunghezza dei mesi e gli anni bisestili per fare gli
opportuni "riporti") ma che mi stupisce non trovare nella libreria
standard...
A proposito di implementazione manuale: esiste una funzione di libreria
per sapere se un anno è bisestile senza dovere calcolare la sua
lunghezza in secondi?

ciao, grazie

Pietro

_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a