[C#] TimeSpan.Parseで「24:00」は例外発生。24時間以上の値を扱うには?

Pocket

TimeSpan.Parseメソッドで24:00:00のように指定すると例外が発生してしまいす。気持ちは分かりますが、時は0~23の範囲、分および秒は0~59の範囲で指定する必要があります。

スポンサーリンク

発生する例外

型 ‘System.OverflowException’ のハンドルされていない例外が mscorlib.dll で発生しました

数値要素の少なくとも 1 つが範囲外であるか、または桁数が多すぎるため、TimeSpan を解析できませんでした。

 

24時間以上の時間を扱うには?

24時間以上の時間を扱うには、日数を時間の前に指定する必要があります。たえば、24時間ちょうどの TimeSpan オブジェクトを取得するには、下記のように指定します。

(NG) 24:00:00

(OK) 1.00:00:00

サンプルコード

    // 24時間以上の時間を扱うサンプルコード
    // 例外は発生しない
    TimeSpan ts = TimeSpan.Parse("1.00:00:00");

 

※ なお TimeSpan.Parse メソッドは、時分の指定は必須ですが、それ以外の秒などは省略可能です。12:34 のような指定の仕方もできます。

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *