Gestione speciale delle variabili che regolano la data e l'ora (DXF)

Le variabili di sistema CDATE e DATE consentono di modificare la data e l'ora correnti. Le variabili di sistema TDCREATE, TDINDWG, TDUPDATE e TDUSRTIMER e le variabili DXF $TDCREATE, $TDUCREATE, $TDUPDATE e $TDUUPDATE della sezione HEADER consentono di modificare la data e l'ora associate al disegno corrente. I valori vengono rappresentati come numeri reali, ciascuno dei quali ha un significato specifico, come illustrato più avanti.

La variabile DATE restituisce un numero reale che rappresenta la data e l'ora correnti come somma della data del calendario giuliano e della frazione del giorno.

<Data del calendario giuliano>.<Frazione del giorno>

Ad esempio, il 31 dicembre 1999 alle 21:58:35 GMT, la variabile DATE sarà uguale a

2451544.91568287

La data e l'ora vengono ricavate dall'orologio del computer al momento della lettura della variabile. L'ora viene rappresentata come frazione del giorno e, per il calcolo delle differenze temporali, è sufficiente sottrarre il valore delle ore restituito da DATE. Per estrarre dal valore restituito da DATE il numero dei secondi trascorsi dalla mezzanotte, utilizzare le seguenti espressioni AutoLISP:

(setq s (getvar "DATE"))
(setq seconds (* 86400.0 (- s (fix s))))

DATE restituisce una data del calendario giuliano solo se l'orologio del sistema è impostato su UTC/Zulu (ora di Greenwich). TDCREATE e TDUPDATE hanno lo stesso formato di DATE, ma i loro valori rappresentano la data e l'ora di creazione e la data e l'ora dell'ultimo aggiornamento del disegno corrente.

Le variabili TDINDWG e TDUSRTIMER e le variabili DXF $TDINDWG e $TDUSRTIMER della sezione HEADER utilizzano un formato simile a quello di DATE, ma i relativi valori rappresentano il tempo trascorso sotto forma di

<Numero di giorni>.<Frazione del giorno>

La variabile CDATE restituisce la data e l'ora correnti in un formato basato sul calendario e l'orologio di sistema. Viene restituito un numero reale nel seguente formato:

AAAAMMGG.OOMMSScsec

dove

YYYY = anno

MM = mese (01-12)

DD = giorno (01-31)

HH = ora (00-23)

MM = minuti (00-59)

SS = secondi (00-59)

hsec = centesimi di secondo (00-99)

Ad esempio, se la data corrente è 31.12.05 e l'ora corrente 21:58:35.75, CDATE restituisce il seguente valore:

20051231.21583575

Si noti che i valori restituiti da CDATE possono essere confrontati ma non sottratti, poiché si otterrebbero numeri senza significato.