Difference between revisions of "Data ora"
| (8 intermediate revisions by 2 users not shown) | |||
| Line 3: | Line 3: | ||
Allo stesso modo per avere data e ora correnti in una variabile Datetime si usa la funzione <code>datetime$</code> (solo dalla V7). | Allo stesso modo per avere data e ora correnti in una variabile Datetime si usa la funzione <code>datetime$</code> (solo dalla V7). | ||
| − | La forma canonica per rappresentare data e ora con una stringa è: | + | La '''forma canonica''' per rappresentare data e ora con una stringa è: |
<pre>YYYY-MM-DDThh:mm:ssZ #attenzione alle lettere "in più" T e Z</pre> | <pre>YYYY-MM-DDThh:mm:ssZ #attenzione alle lettere "in più" T e Z</pre> | ||
| Line 15: | Line 15: | ||
num$(time$) #Per ottenere come stringa l'ora corrente | num$(time$) #Per ottenere come stringa l'ora corrente | ||
num$(datetime$) #Per ottenere come stringa canonica la data e ora odierna | num$(datetime$) #Per ottenere come stringa canonica la data e ora odierna | ||
| − | + | ||
| − | |||
year(data) #Per ottenere l'anno di una data | year(data) #Per ottenere l'anno di una data | ||
month(data) #Per ottenere il numero del mese di una data | month(data) #Per ottenere il numero del mese di una data | ||
| Line 29: | Line 28: | ||
eomonth(data) #Per ottenere l'ultimo giorno del mese di una data | eomonth(data) #Per ottenere l'ultimo giorno del mese di una data | ||
addmonth(data,mesi) #Per ottenere una data sommando n mesi alla data specificata | addmonth(data,mesi) #Per ottenere una data sommando n mesi alla data specificata | ||
| + | |||
| + | gdat$(DAY,MONTH,YEAR) #Per ottenere una data dati giorno, mese e anno | ||
| + | gdatetime$(str) #Per ottenere una variabile Datetime da una stringa in forma canonica | ||
</pre> | </pre> | ||
| Line 43: | Line 45: | ||
<code>FORMATO = "DD[ ]MM[ ]YY"</code> | <code>FORMATO = "DD[ ]MM[ ]YY"</code> | ||
| + | === gdatetime$: da stringa canonica a dateTime === | ||
| + | <pre> | ||
| + | Local Date DATA | ||
| + | Local Char STR_DATETIME(20) | ||
| + | STR_DATETIME="2011-05-23T04:43:53Z" #la stringa deve avere 20 caratteri nel formato canonico | ||
| + | gdatetime$(str) | ||
| + | </pre> | ||
| + | |||
| + | YYYY-MM-DDThh:mm:ssZ | ||
| + | |||
| + | === Esempio === | ||
| + | <pre>num$(date$+" " +time$)</pre> | ||
| + | resituisce | ||
| + | <pre>"20250327 18:03:46"</pre> | ||
| − | < | + | Data e ora assieme in una variabile: |
| + | <pre>Local Datetime DT | ||
| + | DT=datetime$</pre> | ||
=== Esempi === | === Esempi === | ||
| Line 51: | Line 69: | ||
<pre> | <pre> | ||
Local Date DATA,DATA1 | Local Date DATA,DATA1 | ||
| − | DATA=[1/2/2015]+5 | + | DATA=[1/2/2015]+5 #DATA conterrà [06/02/2015] |
DATA1=[1/2/2015]-1 #DATA conterrà [31/01/2015] | DATA1=[1/2/2015]-1 #DATA conterrà [31/01/2015] | ||
NUMGIORNI=DATA-DATA1 #giorni di differenza tra due date | NUMGIORNI=DATA-DATA1 #giorni di differenza tra due date | ||
| Line 64: | Line 82: | ||
DATA_STR = DATA # conversione implicita: DATA_STR = "20191231" | DATA_STR = DATA # conversione implicita: DATA_STR = "20191231" | ||
</pre> | </pre> | ||
| + | |||
| + | Conversione da data/ora a stringa: | ||
| + | |||
| + | <pre>format$("DD2",date$)-num$(time$)</pre> | ||
| + | |||
| + | <pre>format$("DD[-]MM[-]YYYY",date$)-num$(time$)</pre> | ||
| + | |||
Ottenere ultimo giorno di un mese: | Ottenere ultimo giorno di un mese: | ||
Latest revision as of 14:44, 28 April 2025
Per ottenere la data corrente in una variabile Date si usa la funzione date$.
Allo stesso modo per avere data e ora correnti in una variabile Datetime si usa la funzione datetime$ (solo dalla V7).
La forma canonica per rappresentare data e ora con una stringa è:
YYYY-MM-DDThh:mm:ssZ #attenzione alle lettere "in più" T e Z
Data e ora hanno formato "YYYY-MM-DDThh:mm:ss"
Attenzione: la variabile adxdcs contiene l'anno pivot, usato per capire a quale secolo fare riferimento (anno 41- > 1941 o 2041?)
num$(date$) #Per ottenere come stringa la data odierna num$(time$) #Per ottenere come stringa l'ora corrente num$(datetime$) #Per ottenere come stringa canonica la data e ora odierna year(data) #Per ottenere l'anno di una data month(data) #Per ottenere il numero del mese di una data month$(data) #Per ottenere il nome del mese di una data nella lingua corrente day(data) #Per ottenere il numero del giorno del mese (1-31) day$(data) #Per ottenere il nome del giorno della settimana dayn(data) #Per ottenere il numero del giorno della settimana (1=lunedì, 7=domenica) week(data) #Per ottenere il numero della settimana (1-53) aweek(settimana,anno) #Per ottenere il primo giorno (lunedì) della settimana specificata nday(data) #Per ottenere il numero di giorni passati dal 1 gennaio 1600 nday$(NUM) #Per ottenere una data successiva di NUM giorni dal 1 gennaio 1600 eomonth(data) #Per ottenere l'ultimo giorno del mese di una data addmonth(data,mesi) #Per ottenere una data sommando n mesi alla data specificata gdat$(DAY,MONTH,YEAR) #Per ottenere una data dati giorno, mese e anno gdatetime$(str) #Per ottenere una variabile Datetime da una stringa in forma canonica
Ottenere come stringa con formato a piacere:
format$("D:YYYYMMDD[_]hhmmss",date$)
Il 31 dicembre 2018 alle 12.30 e 56 secondi corrisponderà a “20181231_123056”.
Notare che per inserire uno spazio o altri elementi costanti si usano le parentesi quadre:
FORMATO = "DD[ ]MM[ ]YY"
gdatetime$: da stringa canonica a dateTime[edit]
Local Date DATA Local Char STR_DATETIME(20) STR_DATETIME="2011-05-23T04:43:53Z" #la stringa deve avere 20 caratteri nel formato canonico gdatetime$(str)
YYYY-MM-DDThh:mm:ssZ
Esempio[edit]
num$(date$+" " +time$)
resituisce
"20250327 18:03:46"
Data e ora assieme in una variabile:
Local Datetime DT DT=datetime$
Esempi[edit]
Eseguire anche delle semplici operazioni:
Local Date DATA,DATA1 DATA=[1/2/2015]+5 #DATA conterrà [06/02/2015] DATA1=[1/2/2015]-1 #DATA conterrà [31/01/2015] NUMGIORNI=DATA-DATA1 #giorni di differenza tra due date
Fare una conversione implicita da data a testo:
Local Char DATA_STR(30) # dichiaro una stringa Local Date DATA # dichiaro una data DATA=[31/12/2019] # imposto una data iniziale DATA_STR = DATA # conversione implicita: DATA_STR = "20191231"
Conversione da data/ora a stringa:
format$("DD2",date$)-num$(time$)
format$("DD[-]MM[-]YYYY",date$)-num$(time$)
Ottenere ultimo giorno di un mese:
Local date LASTDATE LASTDATE = eomonth([1/2/2015]) Infbox num$(LASTDATE)
Ottenere come stringa formattata: usare AFNC.FDH, per esempio func AFNC.FDH(date$,"121531") restituirà, il primo giugno 2018: 01/06/18 12:15:31
Variabili globali contenenti stringhe di formattazione[edit]
Sono preimpostate in base alle varie parametrizzazioni predefinite. Sono utili per mantenere uno standard che si adatta in base ai vari utenti, siti, ecc.
L’ordine giorno-mese-anno di queste formattazioni dipende appunto dalla localizzazione e dalle impostazioni utente.
Le variabili sono queste:
GFMDAT = data standard, con 2 caratteri per giorno, 2 per il mese , 2 per l’anno GFMDAT4 = data con l’anno a 4 cifre GFMDAT3 = data con il mese espresso con tre lettere GFMDAT9 = data con il mese scritto in lettere GFMMOI = mese-anno GFMMOI4 = mese-anno con anno a 4 cifre GFMJOU = giorno-mese
(per maggiori info dall'help di Sage, Riquadro sviluppo->sottoprogrammi ->Modulo Supervisore)
Videate[edit]
Per visualizzare un campo che in tabella è di tipo ADATIM (per esempio UPDDATTIM), in maschera utilizzare tipo dato "A" con lunghezza 19.