日付/時刻変数の特別な処理(DXF)

システム変数 CDATE と DATE により、現在の日付と時刻にアクセスできます。システム変数 TDCREATE、TDINDWG、TDUPDATE、TDUSRTIMER(および DXF ヘッダ変数 $TDCREATE、$TDUCREATE、$TDUPDATE、$TDUUPDATE)により、現在の図面に関連する日付と時刻にアクセスできます。値は、次に説明するように、特別な意味を持つ実数で表されます。

DATE は、実数でユリウス日付と 1 日の端数として表される現在の日付と時刻です。

<ユリウス日>.<端数>

たとえば、グリニッジ標準時で 1999 年 12 月 31 日の午後 9 時 58 分 35 秒の場合、変数 DATE には、次の値が格納されます。

2451544.91568287

日付と時刻は、変数が読み込まれたときのコンピュータの時計から取り込まれます。 時刻は 1 日の端数として表され、DATE が返す時刻を減算して時間差を計算できます。DATE が返す値から午前 0 時以降の秒を取り出すには、次の AutoLISP 式を使用します。

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

システムの時計が UTC/Zulu(グリニッジ標準時)に設定されている場合にのみ、DATE は正確なユリウス日付を返すことに注意してください。TDCREATE と TDUPDATE は DATE と同じ形式ですが、各値は現在の図面を作成した時刻と最後に更新した時刻を表します。

TDINDWG と TDUSRTIMER(および DXF ヘッダ変数 $TDINDWG と $TDUSRTIMER)は DATE の形式と似た形式を使用しますが、図面を開いてからの経過時間を次の形式で表します。

<日数>.<端数>

CDATE は、現在の日付と時刻をカレンダと時計の形式で表します。値は、次の形式で実数として返されます。

YYYYMMDD.HHMMSShsec

ここで、

YYYY = 年

MM = 月 (01-12)

DD = 日 (01-31)

HH = 時 (00-23)

MM = 分 (00-59)

SS = 秒 (00-59)

hsec = 1/100 秒 (00-99)

たとえば、現在の日付が 2005 年 12 月 31 日の午後 9 時 58 分 35.75 秒の場合、変数 CDATE は、次の値を返します。

20051231.21583575

CDATE の値を比較することにより、どちらが早く、どちらが遅いかを判断することはできますが、それらの値を減算しても意味のない数値になります。