使用例1: お久しぶり! ……何日ぶり?
さて、ではこの値がゴーストにとってどう役立つかというと、まずまっさきに考えられる利用法としては「日付間の日数の算出」があります。
例えばゴーストが起動したときに、前回終了時から何日経っているのかを正しく求めたい、というようなことがあろうかと思いますが、これを何月何日という普通の日付から計算しようとすると地味に厄介で、
- 前回終了時から年をまたいでいないか
- 月をまたいでいないか
- またいでいる場合、それは大の月か小の月かはたまた2月か
- 2月の場合、その年は閏年かどうか
- そもそも閏年の置き方の規則というのはうんぬんかんぬん
……というようなことをひととおり考慮しなくてはなりません。
ところがユリウス日ならば単に引き算をするだけでたちどころに正確な経過日数が出てまいります。
すなわち、前掲の記事のユリウス日算出スクリプトを記したうえでゴーストの終了時に
のようにしておけば、次に起動したときに
:こんにちは! (calc,(call,ユリウス日,(現在年),(現在月),(現在日))-(終了ユリウス日))日ぶりですね!
のようなことができるわけです。
ひとつ注意点を挙げれば、ユリウス日の値はそれ自体けっこう大きな数になりますので、たとえば経過時間を日単位ではなく秒単位で求めたいからといって安易にユリウス日に86400を掛けたりするととんでもない数字になってオーヴァーフローいたします。その場合は適宜2450000くらいをあらかじめ引くなりしておきましょう*1。