日付に月を加算する処理でハマった話し
要するにこの日付の nヶ月後 はいつですか? というお題なわけですが、末日の処理でハマってしまいました。
例えば、8/31 の1ヶ月後は? というと、9/30 日ですよね。9月には 31日はありませんから。
じゃぁ、9/30 の1ヶ月後は? となると、どうなんでしょ?
1日からの日数という視点で考えると 10/30 で問題なさそうです。
しかし月の末日という視点から見ると、10/31 が正しく思えてきます
その絡みで 10/31 は 9/30 から1ヶ月経過してるの? してないの? となると「え? ちょっと待って」となりません?
特に2月なんてね、普段でも28日までしか無いのに閏年なんかあったりして、もう勘弁してほしかったです。
最終的には要求とか要件とか仕様とかで決めるしかないとは思うのですが、軽く混乱しますよね。
おまけに日付に月を足す関数とかメソッドがあったとしても、言語とかミドルウェアによって月の末日を処理した結果が違ってたりして・・・。
いや~、参りました。