Difference between revisions of "Data ora"

From SageDev KB
Jump to navigation Jump to search
m
 
(6 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
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
 
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 42: Line 44:
  
 
<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 62: Line 83:
 
</pre>
 
</pre>
  
Conversione da data a stringa:
+
Conversione da data/ora a stringa:
 +
 
 +
<pre>format$("DD2",date$)-num$(time$)</pre>
 +
 
 +
<pre>format$("DD[-]MM[-]YYYY",date$)-num$(time$)</pre>
  
<pre>format$("DD2",date$)</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.