日付を扱うMTタグは閏年を考慮しているのか

投稿日: 更新日:

MTタグの処理で閏年が気になる場合

例えば、案件でニュース系コンテンツのあるウェブサイトを扱っていて、ニュース一覧でに現在日(MTが最後に再構築した日)からxx日以内の記事に「NEW」マークつけろ、とかいう要件があるとする。
これをCMSテンプレートで実装する時に、現在日 - 記事の日付との"日単位"の差分を求めたい。

ただ、気になるのが"閏年"。MTタグのレベルではどの程度対応してるのか。

ちなみに前提として、世間一般で使われているのは「グレゴリオ暦」。
日本もグレゴリオ暦の計算法に準じる形で閏年を計算するよう、法令で定められている(明治三十一年勅令第九十号(閏年ニ関スル件))。

具体的な閏年の計算法は、次の通り(※1より引用)。

(1)西暦年号が4で割り切れる年をうるう年とする。
(2)(1)の例外として、西暦年号が100で割り切れて400で割り切れない年は平年とする。

前述を踏まえて、MTタグの動作がグレゴリオ暦の閏年に準拠してるかを、実機動作で見てみる。

検証

検証用に、次のコードを用意して、出力結果を見てみる。

年初からの起算日(2020.12.31)<$MTDate ts="20191231000000" format="%j" $>
年初からの起算日(2020.12.31)<$MTDate ts="20201231000000" format="%j" $>
年初からの起算日(2100.12.31)<$MTDate ts="21001231000000" format="%j" $>

結果、次の通りだったので、どうもグレゴリオ暦に準拠してるっぽい。

年初からの起算日(2020.12.31)365
年初からの起算日(2020.12.31)366
年初からの起算日(2100.12.31)365

ちなみに、現状はググってもこの辺りの詳細な情報は出てこなかった。
より詳細を知りたい時は、MT本体のコードを見るかMTQあたりで聞いた方が良いと思う。

参考

※1 質問3-6)どの年がうるう年になるの? | 国立天文台(NAOJ)
https://www.nao.ac.jp/faq/a0306.html

関連するタグ

MT6.3.6