Zooper Widgetはシリーズモジュールで現在の日時を中心に前後の日時を表示することができますが、あんなにたくさんではなく昨日だけ、明日だけの日付を表示したい、そんなときもあります。
これの方法については、いくつかありましたので紹介します。
- 本記事は広告およびアフィリエイトプログラムによる収益を得ています。
#D+10…#
これは最近気づいたのですが(いつからあったんだろう?)高度なテキスト編集の日付フィールドに「#D+10…#」というものが加わっていました。結論から言えば、これを使うのが一番ベターです。
現在の日時を表示するのは、例えば
#DMM/dd HH:mm#
で 07/20 17:08 などと表示されますが、これを
#D+10MM/dd HH:mm#
とすると 07/20 17:18 と10分後のものが表示されます。これは時や日の繰り上がりにも対応しています。
+で足す数字は分のみです。+100とすると1時間後ではなく100分後となります。なので、明日、つまり1日後を表示したいときは+1440すればOKです。
また、これは+だけでなく-も対応しており、-1440にすれば1日前になります。10日前なら-14400です。掛け算割り算はさすがに対応していません。
今日:#DMM/dd HH:mm#
明日:#D+1440MM/dd HH:mm#
昨日:#D-1440MM/dd HH:mm#
さらに、この足し引きする部分はそこに計算式を持ってくることもできます。
#D+$(1440*2)$MM/dd HH:mm#
#D+$(1440*30)$MM/dd HH:mm#
こういう形にすれば、自分で何日後が何分後なのか計算する必要はありません。
#W1D…#
気象のフィールドには「#W1D…# 明日の日付時刻」というものがあります。
元々天気情報を表示するためのフィールドですが、これを使っても明日などの表示ができます。
ただし、これは昨日など過去のものは使えず、9日後までの限定となります。
今日:#W0DMM/dd HH:mm#
明日:#W1MM/dd HH:mm#
3日後:#W3MM/dd HH:mm#
#D0102…#
#D0102…#は明日の午前1時2分を指定した書式で表示するフィールド…となっていますが、ちょっと違います。明日の、というよりは「次に訪れる午前1時2分」となります。
#D0102E#
とすると次に訪れず午前1時2分の曜日を表示します。つまり、午前1時2分よりも前にはその日の曜日を表示し、1時2分より後には次の日の曜日を表示します。
これを使って、
#D0000MM/dd#
とすれば、いつでも明日の日付を表示するようになります。
計算式を使って
さきほどの#D0102…#の数字部分は、そこに計算式を仕込むこともできます。
#D$(#DHHmm#+10)$MM/dd HH:mm#
とすると、#DHHmm#で示された現在時刻に+10され、例えば現在時刻が16:34なら1644となります。
が、これもまた繰り上がりがうまく行かず、計算結果が1780となった場合、分の部分の80は1時間20分と判断され20と同じになります。がそれが繰り上がるわけではなく、17は17のままで、1720として解釈されます。
計算はあくまで数字で行われるので、+90などは90分後ではなく単に数字として+90です。
プラスだけでなくマイナスも使えますが、結局こちらも数字としての計算となります。
16:34は1634であり、そこから-40すれば1594、94は60引いて34と解釈されるので1534で15:34と表示されます。
まとめ
いくつかそれっぽい方法はあるものの、結局は#D+10…#の書式を使うのが一番良さそうです。使い道があるのかわかりませんが、「#D+#BLEVN#MM/dd HH:mm#」といったこともできます。
これでシリーズモジュールのような表示を、もっと細かく1つ1つスタイルを指定したものも作れるかもしれませんね。