予期しない結果
1 か月には 28、29、30、または 31 日を含めることができます。 1 年は 365 日または 366 日を含めることができます。これらの不整合のために、次のような命令では予期しない結果となる場合があります。
日付に月の 29 日、30 日、31 日を指定しての月の数の加算または減算 (あるいは月単位の期間の計算)
2 月 29 日の日付が指定されている年の数の加算または減算 (あるいは年単位での期間の計算)
使用される規則は次のとおりです。
月または年を加算ないしは減算する時、日の部分は変更されないままということも起こりえます。 例えば、2000-03-15 + %MONTHS(1) は 2000-04-15 となります。
加算または減算によって実在しない日付が生成された場合 (例えば 4 月 31 日) は、代わりにその月の最後の日付が使用されます。
日の部分を変更する月または年の命令では、逆に戻すことは
できません
。例えば、
2000-03-31 + %MONTHS(1) は 2000-04-30
であり、日が 31 から 30 に変更されます。1 か月を減算しても、元の
2000-03-31
に戻すことはできません。
命令
2000-03-31 + %MONTHS(1) - %MONTHS(1)
は
2000-03-30
になります。
2 つの日付の間の期間は、2 つめの日付から 1 か月を引くと 1 つめの日付になる場合に 1 か月になります。例えば、2000-04-30 - %MONTHS(1) は (2000-03-31 ではなく) 2000-03-30 であるため、2000-03-31 と 2000-04-30 との間の期間は月単位 (端数切り捨て) では 0 となります。
親トピック:
日付命令