Data ora

From SageDev KB
Revision as of 09:13, 5 December 2024 by Mwadmin (talk | contribs)
Jump to navigation Jump to search

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

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

Esempi

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 a stringa:

format$("DD2",date$)

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

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

Per visualizzare un campo che in tabella è di tipo ADATIM (per esempio UPDDATTIM), in maschera utilizzare tipo dato "A" con lunghezza 19.