10.8 通算日数⇒グレゴリオ暦/ユリウス暦変換 公開日:2021年9月10日 C++関数・テンプレート集プログラミング技術情報 前回同様、Wikipediaの計算式を元に修正ユリウス日から年月日の変換を行います。ユリウス日から修正ユリウス日を求めるには2400000.5を引くだけですので、今回は割愛することにしました。 それではまず、修正ユリウス […] 続きを読む
10.7 グレゴリオ暦/ユリウス暦⇒通算日数変換 公開日:2021年9月9日 C++関数・テンプレート集プログラミング技術情報 ユリウス通日に関して、元ネタでは紀元前1年の3月1日を0日目として計算するアルゴリズムが紹介されているようです。ところがWikipediaで調べてみると、実際には、ユリウス日はユリウス暦紀元前4713年1月1日の正午から […] 続きを読む
10.2 日付が有効か否かの判定(グレゴリオ暦/ユリウス暦) 公開日:2021年9月4日 C++関数・テンプレート集プログラミング技術情報 指定した日付が有効かどうかを判定する関数テンプレートです。元ネタとは異なり、std::tm構造体のtm_monに合わせて、月は0~11で指定するようにしています。また、閏年用のテーブルも持たせることで、コードを単純化しま […] 続きを読む
10.1 閏年の高速判定 (グレゴリオ暦/ユリウス暦) 公開日:2021年9月2日 C++関数・テンプレート集プログラミング技術情報 元ネタでは、負の表現に1の補数を使う処理系に配慮した上で、負の年にも対応しようとしていますが、一応、高速判定が売りですので、ここでは無駄はバッサリ切り捨てて、1年~のみ対応としました。また、ユリウス暦とグレゴリオ暦を動的 […] 続きを読む