somma date

salvea tutti ,avrei bisogno di una info veloce veloce, dovrei sommare un Xore (esempio36) alla data e ora odierna ottenendo nel caso una seconda data (e ora ) ,se faccio la somma diretta mi aumenta le ore direttamante (es 13+36 =47 ) quindi non e'la strada da seguire , Sto cercando di capire come fare se : ad un evento (esempio pin 1 = high) sommare alla ora in quel momento (now.hour()) un valore X ottenendo la nuova data .... mi potete far luce su questo arcano? hocapito comelavorare con i singoli valori di ora e minuti ma non con la data intera grazie mille

Quando di devono fare operazioni matematiche (+ e -) che coinvolgono date/ore, si lavora in "UnixTime" ovvero con un numero intero con cui è molto facile operare.

Ovviamente ti servono le routines per convertire da data/ora in "Unix Time" (detto anche epoch) e viceversa ...

Se fai un po' di ricerche, se ne è parlato qualche altra volta qui sul forum ...

Guglielmo

Ci sono tanti modi per fare questo genere di conti. Il metodo più semplice è quello di operare sul numero di ore trasformato in parti del giorno, per cui le ore 12 diventano la metà di un giorno. Esempio il 18 di un giorno alle ore 12 diventa 18.5. A questo punto, sommi le ore/giorni e poi riconverti. Se poi i giorni sono maggiori del numero di quel mese, sottrai il numero dei giorni del mese e aumenti il mese. E così a scalre.

Oppure usi il formato UNIX come ti ha suggerito Gugliemo.

Ci sono diverse possibilitá: Come giá proposto converti tutto all unitá piú piccola che usi (ore, minuti o secondi) e poi riconverti in ore giorni mesi ecc. In alterativa sommi le ore alla data/ora e poi controlli se ci sono prodotti dei valori troppo grandi. Se sí devi callolare il riporto e sommarlo ai giorni/mesi /anni. La cosa é un po complicato perché i mesi hanno un numero non costante di giorni e ci sono gli anni bisestili. Il calcolo del riporto dei giorni per mese risolve piú semplicemente usand un arrav con i giorni del mesi.

Ciao Uwe