2012-06-03 14 views
25

私は2つのカレンダーを持ち、それぞれcalendar.SelectedDateからDateTimeを返します。2つの日付を引く

選択した2つの日付を減算して、2つの選択肢間の日数を指定する方法を教えてください。

calendar.Subtract()がありますが、DateTimeの代わりにTimeSpanが必要です。

答えて

36

someDateTime.Subtract(otherDateTime)を使用するとTotalDaysプロパティを持つTimeSpanが返されます。

+0

を必要とする理由だあなたはまた '減算を(渡すことができ
)は' 'TimeSpan'、それは' DateTime'を返します。 http://msdn.microsoft.com/en-us/library/ae6246z1%28v=vs.110%29.aspx – northben

25

ちょうど使用:あなたは日付がとしてそれらを扱いたい場合は

TimeSpan difference = end - start; 
double days = difference.TotalDays; 

あなたはおそらく

TimeSpan difference = end.Date - start.Date; 
int days = (int) difference.TotalDays; 

そのように使用する必要があることをあなたが時間に応じて、異なる結果を得ることはありません。

(あなたがしたい場合は、代わりに-オペレータのSubtractメソッドを使用できますが、個人的に私はそれが明確演算子を使用して見つける。)

+14

SkeetCode(tm)を修正した大胆な男です。良い仕事Bhushan。 – keithl8041

3

それについて考えてみよう。
2つの日付の違いをどのように表現しますか?別の日付?あなたがのTimeSpan

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); 
+0

実際には、2つの日付の違いを表すためにTimeSpanを使用することにはさまざまな問題がありますが、この場合は大丈夫です。 –

+0

すべての入力をありがとう。実際には私はその日が必要で、SubtractメソッドもDateTimeパラメータを取ることができませんでした。必要なのはこれだけです:untilCalendar.SelectedDate.Subtract(fromCalendar.SelectedDate).Days –

+0

@sd_dracula:あなたは間違いなく'Subtract'メソッドではなく、演算子ですか? –