2011-06-28 5 views
-4

私は自分のデータベースから取得したDateTimeのインスタンスを持っています。それをDateTime.Nowから差し引いて4時間が経過したかどうか調べたいと思います。それ、どうやったら出来るの?実際に減算を実行するためにDateTimeを別のDateTimeから差し引くにはどうすればよいですか?

bool fourHoursPassed = date.AddHours(4) < DateTime.Now; 

またはこの:

はまた私が使用する必要があるときDateTime.UTCNowまたはDateTimeOffset

+0

あなたは何の研究も考えていなかったので、Stackoverflow ... http://stackoverflow.com/questions/2624687/c-how-do-i-subtract-two-dates – Binil

+3

-1の重複あなた自身の。 –

+0

私はGoogleを検索しました。そして、私は間違いを犯すのを恐れている...それは私が持っている大きなコードの一部です – Matrix001

答えて

5

:あなたはUTCNowNowを必要とするかどうかについては

private static readonly TimeSpan MinimumTime = TimeSpan.FromHours(4); 

... 

if ((dateFromDatabase - DateTime.Now) > MinimumTime) 
{ 
    ... 
} 

を使用すると、データベースからデータをフェッチするとき...それは、時間帯に何が起こるかに依存します。 DateTimeは、この前面にそれほど明確ではありません:(

あなたがあなたの代わりにDateTimeOffset.Nowを使用することができますし、どのタイムゾーンの問題をうまくする方が簡単であるべき、と開始するDateTimeOffsetとして値を取得することができます。

+0

私は現地の言語(英語ではない)のサイトを持っているので、私はTimeZonesの問題を抱えているとは思わない。 – Matrix001

+0

@ Matrix001:言語とタイムゾーンは非常に異なるものです。それは、データベースが 'DateTime'値などをどのように格納するか(返すか)によって決まります。すべてが1つの時間帯にあるので大丈夫とは思わないでください... –

+0

それが14:00を格納すると、 16:00?それはデータベースの場所に依存しますか?私はDateTimeOffset isnt ..の間、DateTimeは地域の変化に敏感であることを読んだ。だから私はDateTimeを使用するためのトラブルになることができますか? – Matrix001

4

DateTime.Subtract

まずGoogleはこれを試してみてください。..

+1

また重複:http://stackoverflow.com/questions/6304514/how-to-subtract-datetime-values-andget- the-time – rciq

+1

それは実際にはそれを行う慣用的な方法ではないことを除いて、おそらく減算*演算子*を使用したいと思います。 –

+0

確かに、彼の答えを得るためにブラウザのアドレスバーに2つの単語を入力できるということが私の主張でした。 ;)また、そのページにオペレータスタイルが記述されています。 :) –

3

を打つ

あなたが TimeSpan得るために減算演算子を使用することができます
1

DateTime.Subtract

または

DateTime myDateTime = someValue; TimeSpan ts = DateTime.Now -myDateTime; if(ts.Hours>=4) { doSomething(); }

それがお役に立てば幸いです。

1

DateTime dt =新しいDateTime(2011、07、10); DateTime dob =新しいDateTime(1987、07、10);

次のように単純に減算することができます。 TimeSpan age = dt-dob;

関連する問題