2つのカレンダーがあり、それぞれがcalendar.SelectedDateからDateTimeを返します。
選択した2つの日付を互いに減算し、2つの選択間の日数を取得するにはどうすればよいですか?
Calendar.Subtract()がありますが、DateTimeではなくTimeSpanが必要です。
someDateTime.Subtract(otherDateTime)
を使用できます。これは、TimeSpan
プロパティを持つTotalDays
を返します。
ただ使用する:
TimeSpan difference = end - start;
double days = difference.TotalDays;
これらをdatesとして扱いたい場合は、おそらく
TimeSpan difference = end.Date - start.Date;
int days = (int) difference.TotalDays;
そうすれば、時間に応じて異なる結果を得ることはありません。
(必要に応じて、-
演算子の代わりにSubtract
メソッドを使用できますが、個人的には、演算子を使用する方がわかりやすいと思います。)
.DateTime dtToday = new System.DateTime(2012, 6, 2, 0, 0, 0);
DateTime dtMonthBefore = new System.DateTime(2012, 5, 2, 0, 0, 0);
TimeSpan diffResult = dtToday.Subtract(dtMonthBefore);
Console.WriteLine(diffResult.TotalDays);