DOBON.NET DOBON.NETプログラミング掲示板過去ログ

時間の比較方法?

分類:[.NET]

いつもお世話になっています。
時間の比較方法について、どなたか教えてほしいのですが。
現在の時間と例えば、3秒以上経過時したかどうか判定したいのですが
(DateTime.Now.AddSeconds(1)) > StartTime では
60:60:58から3秒後は00:00:01では判定が逆になってしまうと思うのですが
何かよい方法はないでしょうか?
結論から言えば、
DateTimeとその配下のメソッド(と、TimeSpan構造体)を使用する限り、問題ないです。

例)
'適当な時間を作って・・・
t1 = DateTime.Parse("2004/09/01 23:59:59", myformat)        '適当な時間を作って・・・
t2 = t1.AddMinutes(65).AddSeconds(3)        '65分と3秒加算・・・
MsgBox(t1.Subtract(t2).ToString)
'元から、その値を引いた結果は、"-01:05:03"が返ってきました。何も問題ないですが?
MsgBox(t1.Subtract(t2).TotalSeconds.ToString)       'ついでに、秒で結果表示。

上の例でも、きちんと計算されています。

で、小言みたいでなんか嫌ですが、

「判定が逆になってしまう」というのは、どういう状態でしょうか。
(たまたま言わんとするところは想像できますが、あいまいなのできちんと
記述した方がいいですよ。)
また、「と思う」だけではなく、自分なりに試した結果(出力例だけでも)を添えた方が
いいと思います。

>「60:60:58から3秒後は00:00:01では」
なく、「02日+13時間+01分+01秒」ではないでしゅか?
(そもそも、DateTimeを使用している場合、「60:60:58」という状態はないはずですが。)

Format関数に書式HH:mm:ssを与えてStringにした2つの値を使って自前で何か強引に数値
計算していればそのような状態になるかもしれませんが。
せっかく計算メソッドが既存なので、それらを使ったほうがいいです。
「ないでしゅか?」>>「ないでしょうか」。
(指がついて行ってなかったみたいです。)
・・・。(何か微妙にすみません。)
  • 題名: Re[3]: 時間の比較方法?
  • 著者: ふろふろ
  • 日時: 2004/09/10 19:52:51
  • ID: 6119
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No6092に返信(こど。さんの記事)
> 「ないでしゅか?」>>「ないでしょうか」。
> (指がついて行ってなかったみたいです。)
> ・・・。(何か微妙にすみません。)

こどさん ありがとうございます

こどさんのおっしゃる通り、頭の中だけで考えていました。
時間関数だけで判断していました。
日付もセットで使えばいいわけですね。
やっぱり、実験の重要性を再認識しました、反省して以後注意します
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板