- - PR -
C#.NETでの時間計算について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-07-23 16:44
はじめまして。
表題の件、過去トピックスも参照したのですが、 発見できませんでしたので、情報提供いただきたくお願い致します。 Webフォームにて入力された"開始時間"、"終了時間"から経過時間の算出を行いたいのですが、 終了時間が24:00以降となった場合の計算を対応する必要があります。 現状の下記ソースでは当然ですが、 エラー(System.FormatException: 文字列で表される DateTime が範囲を超えています。)が発生します。 ------------------------------------------------------------------------- DateTime Date1; DateTime Date2; TimeSpan Time; string StartTime = "0900"; string EndTime = "2500"; Date1 = DateTime.ParseExact(StartTime,"HHmm",null); Date2 = DateTime.ParseExact(EndTime,"HHmm",null); Time = Date2 - Date1; ------------------------------------------------------------------------- ※上記例では結果として「16:00」と取得したいのです。 そもそもDateTimeにて行うことに無理があるのでしょうか? または、24:00以上はコードにて日数を+1などにて対応すべきなのでしょうか? 初歩的に質問で大変恐縮ですが、お知恵をお貸しいただきたくお願い致します。 |
|
投稿日時: 2005-07-23 17:26
25:00と言う時刻があり得ないのは当然分かっていますよね。したがって25:00をDateTime(日付)型に設定しようとしてExceptionが発生するのは至極当然の結果だと思います。解決方法は二つあります。あなた自身の質問文にもあるように、日付も含めて正しい時刻表現に置き換えることです。もう一つの方法はTimeSpan(時間間隔)型を使うことです。
|
|
投稿日時: 2005-07-23 18:30
甕星さん
さっそくの返信ありがとうございます。 > もう一つの方法はTimeSpan(時間間隔)型を使うことです。 上記方法を試してみたいと思います。 |
1