Data ora
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 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 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
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"
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"
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.