date.totalseconds

Ciao a tutti ed un saluto particolare al nostro evangelist Antonio.

Antonio o chiunque possa offrirmi una soluzione al seguente problema:

Ho una data iniziale 2019-07-01 ma vorrei poter aggiungere a questa un numero di gg ed ottenere la nuova data.
Esempio data iniziale 2019-07-01 , + 31 gg , vorrei ottenere la data finale in 2019-08-01

con la funzione data.totalseconds posso calcolare i giorni tra due date, ma per l’esempio sopra come si fa?

Suggerimenti?

Grazie per l’aiuto

Ricambio il saluto :slight_smile:

utilizza l’oggetto Date
Ad esempio tu hai la data in formato stringa sql (2019-07-01)
La trasformi in Date con:

dim miaData as new Date //ora miaData corrisponde alla data attuale.
miaData.sqlDate='2019-07-01' //ora miaData  la data richiesta. ATTENZIONE ora, minuti e secondi rimangono quelli originali

miaData.day=miaData.day+31 //ora miaData  2019-08-01

Puoi modificare la data operando su uno qualsiasi dei parametri (year, month, day, hour, minutes, second) e lo preferisco a utilizzare totalSeconds per leggibilit.
Ma ricorda che se modifichi pi parametri l’ordine delle operazioni importante.

ad esempio:

dim d as new Date
d.SQLDate="2019-01-11"
d.Day=d.Day+31
d.Month=d.Month+1
//d.sqlDate=>2019-03-11

//Mentre 
d.SQLDate="2019-01-11"
d.Month=d.Month+1
d.Day=d.Day+31
//d.sqlDate=>2019-03-14

Infine, se vuoi operare su un db SQLite puoi utilizzare le funzioni relative per fare calcoli di date anche complessi (start of month, start of week e molto altro) e a volte potrebbe essere utile usare un db in memoria per effettuare questi calcoli velocemente.

Ciao Antonio

Non ti smentisci mai, sempre chiaro preciso e disponibile.
Siamo fortunati di contare su una persona preparata come te.

Grazie per la soluzione perfetta che stavo cercando.