1

DateTime2012/09/21 23:59:59 を含む開始オブジェクトと、 DateTime2012/09/22 00:01:02 を含む終了オブジェクトがあるとします。これら 2 つのオブジェクトの違いは 1 分ほどですが、この日付範囲に属する日数は 2 です。

TimeSpan他の同様の質問を読みましたが、DateTimeクラスはこのタイプの計算を実行するメソッドを提供していないと思います。特定の日付範囲に属する日数を計算する方法は?

4

4 に答える 4

4

使用する:

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 になります。

于 2012-09-22T11:29:18.247 に答える
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 も使用できます

于 2012-09-22T11:30:18.473 に答える
0

しません

(dateTime2 - dateTime1).TotalDays

あなたのために働きますか?

于 2012-09-22T11:29:11.560 に答える
0

他の同様の質問を読んだことがありますが、TimeSpan および DateTime クラスはこのタイプの計算を実行するメソッドを提供していないと思います。

もちろんそうです。

TimeSpanは使用するクラスです。TotalDaysプロパティを探しているのではないでしょうか。

DateTime date1 = ...;
DateTime date2 = ...;
TimeSpan difference = date2 - date1;
int totalNumberOfDays = difference.TotalDays;
于 2012-09-22T11:29:30.377 に答える