ただいま修行中...

ソフトウェア開発において、勉強中で悪戦苦闘の日々

C#○ヶ月後取得メソッドサンプル

2007-12-20 22:18:22 | C#
C#に現在の日付より○ヵ月後を取得するメソッドがなかったので、DelphiIncMonthをC#に移植しました。サンプルのコードは以下のようになります。

private DateTime IncMonth(DateTime dt, int NumberOfMonth)
{
int Sign;
if (NumberOfMonth >= 0)
Sign = 1;
else
Sign = -1;
int year =dt.Year, month = dt.Month, day =dt.Day;
year = dt.Year + (NumberOfMonth / 12);
NumberOfMonth = NumberOfMonth % 12;
month += NumberOfMonth;
if ((month - 1) > 11)
{
year += Sign;
month += -12 * Sign;
}
day = DateTime.DaysInMonth(year, month);
return DateTime.Parse(year.ToString() + "/" + month.ToString() + "/" + day.ToString());
}

それにしても、○日後はあるのに、なぜ、○ヵ月後がないのか非常に不思議です。