経過月日の計算の方法は「3月10日から6月20日」のように日数の部分が単純に差で求められる場合は簡単である。
一方、「3月20日から6月10日」のように日数の部分が負になる場合が面倒である。
概要
この場合の計算方法は、いくつか考えられるが一般的なのは次の二つだろう。
その1
「期始の日から期末の前月の同じ日までの月数」と「残りの日数」を加える方法。
その2
「期始の日からその月末までの日数」と「期始の属する月の翌月から期末の属する月の前月までの月数」と「期末の月始から期末までの日数」を加える方法。
試しに計算してみる。
なお、ここでは、いわゆる「初日不算入」とする。例えば3月1日から3月5日までは4日間となる。「片端」と呼ぶこともあるようだ。
3月20日から6月10日までの経過月日
その1
3月20日から5月20日まではちょうど2か月間。
5月20日から5月31日までは11日間。
5月31日から6月10日までは10日間。
全部で2か月21日。
その2
3月20日から3月31日までは11日間。
3月31日から5月31日まではちょうど2か月間。
5月31日から6月10日までは10日間。
全部で2か月21日。
同じ結果になる。
12月20日から3月10日までの経過月日
その1
12月20日から2月20日まではちょうど2か月間。
2月20日から2月28日までは8日間。
2月28日から3月10日までは10日間。
合わせて2か月18日。
その2
12月20日から12月31日までは11日間。
12月31日から2月28日まではちょうど2か月間。
2月28日から3月10日までは10日間。
合わせて2か月21日。
どちらが正しいか、はっきりしない。
なお、ExcelのDATEDIF関数の考え方は次の通りだと思われる。
まず期始の日から31日までの日数を数える。大の月だろうが小の月だろうが2月だろうが31日である。
あとはその2と同じ。正しく計算されるはずがない。
コメント