0

2つの日時の間の日数を取得しようとしていますが、正確なタイムスパンではなく、日付aと日付bの「日付」の差に従っています。時間は考慮されません。

これまでのところ、以下を使用してアイテムの年齢を計算しました。

(DateTime.Now - creationDate).Days

このコードの問題は、前日に作成されたものの 24 時間以内に作成されたものについては、「0 日」と出力されることです。これは明らかにユーザーには明確ではありません。

だから私が達成したいのは、たとえば午後 11 時 59 分に作成されたアイテムであっても、時計が真夜中になるとすぐに「1 日経過」の出力を取得することです。どうすればこれを達成できますか?

4

2 に答える 2

3

2 つのオプション:

1) 最初に 2 つの日付を取得します。

    var days = (DateTime.Today - creationDate.Date).Days;

2)代わりに私のNoda TimeLocalDate日付/時刻ライブラリを使用し、関連する 2 つの日付を使用してPeriod.Between(start, end, PeriodUnits.Days)から、ちょうど数日の期間を取得します。(週、月などを取得することもできます。) 確かに、「今日の日付」を取得することは、.NET が暗黙的に「システム タイム ゾーン」を使用する Noda Time では、意図的に少しトリッキーになります。

于 2013-02-23T13:24:49.610 に答える
2

私はそれを単に次のように使用します

int days =(int)DateTime.Now.Subtract(creationDate).TotalDays; 

お役に立てれば

于 2013-02-23T13:39:09.733 に答える