DateTime
2012/09/21 23:59:59 を含む開始オブジェクトと、 DateTime
2012/09/22 00:01:02 を含む終了オブジェクトがあるとします。これら 2 つのオブジェクトの違いは 1 分ほどですが、この日付範囲に属する日数は 2 です。
TimeSpan
他の同様の質問を読みましたが、DateTime
クラスはこのタイプの計算を実行するメソッドを提供していないと思います。特定の日付範囲に属する日数を計算する方法は?
使用する:
DateTime dateTime1 = DateTime.Parse("2012/09/21 23:59:59");
DateTime dateTime2 = DateTime.Parse("2012/09/22 00:01:02");
TimeSpan difference = dateTime1 - dateTime2;
変数difference
には、2 つの日付の間の時間が含まれます。たとえば、TotalDaysプロパティを使用して、日数の差を取得します。
時間の部分を除外する場合は、DateTime でDateプロパティを使用します。次に例を示します。
TimeSpan difference = dateTime1.Date - dateTime2.Date;
この場合、TotalDays は 0 ではなく 1 になります。
次のことができます。
System.DateTime dtTodayNoon = new System.DateTime(2006, 9, 13, 12, 0, 0);
System.DateTime dtTodayMidnight = new System.DateTime(2006, 9, 13, 0, 0, 0);
System.TimeSpan diffResult = dtTodayNoon.Subtract(dtYestMidnight);
Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.Days);
Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.TotalDays);
Console.ReadLine();
サマータイムを含める場合:
System.TimeSpan diffResult = dtTodayNoon.ToUniversalTime().Subtract(dtYestMidnight.ToUniversalTime());
タイムゾーンが重要な場合は、DateTimeOffSet も使用できます
しません
(dateTime2 - dateTime1).TotalDays
あなたのために働きますか?