2011-10-04 8 views
3

If CreatedDateが次の1時間前または前に実行される場合は、If文を記述します。これを行う方法はありますか?以下のようなC#OnまたはBefore DateTime

何か:

if (CreatedOn.ToUniversalTime() <= DateTime.Now.AddHours(1).ToUniversalTime()) 
{ 
} 

はそれが右のでしょうか良い方法はありますか?

ありがとうございます!

+7

お待ちください* * * * *未来*の日付を作成しましたか? :Dあなたのコードは良く見えますが、BTW。 – Cameron

+0

私に見えます。 – slandau

+0

がうまく見えます - ちょうどちょっと遊んだり、いくつかの**学習テストを書いたりすることができたかどうかわからないのならもちろん - これが正しいかどうかチェックするのは大したことではありません;) – Carsten

答えて

4

私はあなたのアプローチが大体素晴らしいと思います。結局のところ、あなたの説明を見て:

から別の時間を減算について話しません

「CreatedDateには、上または次の1時間前であれば、」 - それはCreatedDate比較について語ります「次の時間」、すなわち今から1時間である。

そう:私にはかなりきれいに見えます

DateTime hourFromNowUtc = DateTime.UtcNow.AddHours(1); 
if (CreatedOn.UniversalTime() <= hourFromNowUtc) 

- あなたはCreatedOnが本当に何であるかを認識する必要があります除きます。それはローカルですか?不特定?すでに普遍?残念ながらDateTime is problematic in this respect ... Noda Timeを使用していた場合、疑いの余地はありません;)

+0

ありがとうございました。それが私が探していたものです。そして私が質問にどうやって苦労してくれないかと考えています。 :) –

+0

ハ! +1あなたが取り組んでいるプロジェクトの恥知らずの宣伝(ほとんど)。それは本当にこれを扱いやすくするからです。ダン 'DateTime' ... – Zannjaminderson

+0

@ Zannjaminderson:私はイスラムのカレンダーを実装する私の夜を無駄にしていないことを確かに*期待しています:) –

-1

いくつかの選択肢があります。たとえば、DateTime.Now - CreatedOnは、TimeSpanという値を返します。この値には、これら2つの間の時間の長さが示されます。あなたは1時間以内にそれを比較することができます。

関連する問題