概要 2つの日付(例えば、自分の誕生日と今日)の間の経過日数を求めたくなったとします。 ぱっとは出てきませんね。 原因は主に、毎月の日数がばらばらなのと、うるう年のせいなんですが。 まあ、2つの日付の差というとちょっと面倒なんで、 とりあえず、グレゴリウス暦1年1月1日を基準にして、経過日数を求めることにします。 (グレゴリウス暦施行(早い国で1582年)より前の日付も、 形式的にグレゴリウス暦とみなして計算します。) この基準日からの経過日数が分かれば、その差を取ることで、2つの日付の差も分かります。 まあ、大筋だけ言うと、 1年1月1日からy年m月d日までの経過日数は、 dy: ( y −1 ) × 365 dl:y年までのうるう年の回数 dm: 1月1日からm月1日までの日数 d という4つに分けて考えて、その和 dy + dl + dm + d −1 で求まります。 最初と最後の項
![経過日数の計算(アルゴリズムとデータ構造)](https://cdn-ak-scissors.b.st-hatena.com/image/square/4d1b2b57fc676d21e7f59f354364abeac0ea062e/height=288;version=1;width=512/https%3A%2F%2Fufcpp.net%2Fimages%2Flogo_4.jpg)