Traitement spécial des variables relatives à l'heure et à la date (DXF)

Les variables système CDATE et DATE permettent d'accéder à l'heure et à la date courantes. Les variables système TDCREATE, TDINDWG, TDUPDATE et TDUSRTIMER (ainsi que les variables d'en-tête DXF $TDCREATE, $TDUCREATE, $TDUPDATE et $TDUUPDATE) permettent d'accéder aux heures et dates associées au dessin courant. Les valeurs de ces variables sont représentées par des nombres spéciaux dont la signification est décrite ci-après :

DATE correspond à la date et à l'heure d'une date du calendrier Julien et d'une fraction d'un jour exprimée par un nombre réel.

<Date selon le calendrier Julien>.<Fraction de jour>

Par exemple, au 31 décembre 1999, à 21:58:35 GMT, la valeur de la variable DATE sera :

2451544.91568287

La date et l'heure sont communiquées par l'horloge système lors de la lecture de la variable. L'heure est exprimée sous la forme d'une fraction de jour ; les heures renvoyées par la variable DATE doivent être soustraites pour calculer les différences d'heure. Pour calculer les secondes depuis minuit à partir de l'heure renvoyée par DATE, utilisez les expressions AutoLISP suivantes :

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

Notez que DATE ne renvoie une date du calendrier Julien que si l'horloge du système est réglée sur UTC/Zulu (heure GMT). TDCREATE et TDUPDATE ont le même format que la variable DATE, mais leurs valeurs représentent l'heure de création et l'heure de dernière mise à jour du dessin courant.

TDINDWG et TDUSRTIMER (ainsi que les variables d'en-tête DXF $TDINDWG et $TDUSRTIMER) utilisent un format proche de celui de la variable DATE, mais indiquent des durées écoulées

<Nombre de jours>.<Fraction de jour>

CDATE donne la date et l'heure courantes sous la forme d'une date et d'une heure conventionnelles. La valeur est renvoyée sous la forme d'un nombre réel du type :

AAAAMMJJ.HHMMSScsec

AAAA = Année

MM = Mois (01-12)

JJ = Jour (01-31)

HH = Heure (00-23)

MM = Minute (00-59)

SS = Seconde (00-59)

csec = Centième de seconde (00-99)

Si, par exemple, la date courante est le 31.12.05, et l'heure 21:58:35.75, la valeur de la variable CDATE sera :

20051231.21583575

Notez que les valeurs de CDATE peuvent être comparées à des valeurs antérieures et ultérieures, mais que leur soustraction peut donner des résultats sans grande signification.