Arduino Forum

International => Italiano => Generale => Topic started by: birrohgt on Mar 23, 2019, 07:43 pm

Title: Aiuto per sketch avviso eventi
Post by: birrohgt on Mar 23, 2019, 07:43 pm
salve

ho bisogno del vostro aiuto  devo progettare un specie di agenda per fare manutenzione ad un acquario
esattamente avrei la necessità di scrivere uno sketch che mi imposta una data in automatico della prossima manutenzione aggiungendo  solo i giorni per esempio:

oggi è il 23 marzo 2019 e ho fato la manutenzione (questo dato lo prelevo della rtc)
imposto la prossima manutenzione fra 10 giorni
praticamente la mia funzione deve impostare la data esatta in automatico del prossimo evento tenendo conto del mese e anno in cui siamo in questo caso  dovrebbe darmi il  2 Aprile 2019

sto usando nel mio progetto anche un rtc DS3231 che mi da ora data attuale 

non riesco a capire come posso fare questo calcolo

grazie

Title: Re: Aiuto per sketch avviso eventi
Post by: gpb01 on Mar 23, 2019, 08:15 pm
Usandi il "Unix Time" (o Epoch) ... così tutto si riconduce ad una banale somma di due numeri interi :)

Quasi tutte le librerie hanno le funzioni per la conversione di una data/ora in Unix Time (un numero undigned long a 32 bit) e viceversa oppure usi la <time.h> (http://www.nongnu.org/avr-libc/user-manual/group__avr__time.html) che fa parte di AVR libc (http://www.nongnu.org/avr-libc/user-manual/modules.html) (... libreria sempre inclusa in automatico dall'IDE) ;)

Se non lo consosci, cerca su Google ;)

Guglielmo
Title: Re: Aiuto per sketch avviso eventi
Post by: birrohgt on Mar 27, 2019, 11:43 pm
salve

sono riuscito a trasformare la mia data odierna in Unix Time  tramite la libreria del  rtc DS3231
e mi trovo un numero

data corrente...........: Mercoledi 27.03.2019 -- 23:34:56

corrente Unixtime.....: 1553729696

non ho capito bene ora come faccio ad aggiungere 30 giorni a questa data

grazie
Title: Re: Aiuto per sketch avviso eventi
Post by: brunello22 on Mar 27, 2019, 11:59 pm
l'Unix time è il tempo tascorso in secondi dal 1/01/1970.

se vuoi aggiungere 30gg non devi far altro che sommarci detto tempo in secondi
Title: Re: Aiuto per sketch avviso eventi
Post by: gpb01 on Mar 28, 2019, 06:17 am
30 giorni = 24 ore x 30 giorni = 24 ore x 60 minuti x 30 giorni = 24 ore x 60 minuti x 60 secondi x 30 giorni ...
... da cui il valore da sommare è (86400 secondi/giorno) x 30 giorni = 2592000 secondi :D

Guglielmo
Title: Re: Aiuto per sketch avviso eventi
Post by: birrohgt on Mar 28, 2019, 11:55 pm
grazie mille ora ho capito