22

2つの日時パラメーターを期待するメソッドがあります

public  void SomeReport(DateTime TimeFrom, DateTime TimeTo)
{
    // ommited 
    TimeFrom.ToString("ddMMyy"), TimeTo.ToString("ddMMyy")));
    // ommited
}

このパラメータを送信するとき

 DateTime TimeTo = DateTime.Now;
 DateTime TimeFrom = new DateTime().AddHours(-1);

このエラーが発生しました:

System.ArgumentOutOfRangeException:加算または減算された値は、表現できないDateTimeになります。

何が問題になる可能性がありますか?

4

7 に答える 7

42

new DateTime()01/01/0001 00:00:00これもですDateTime.MinValue

あなたはそれから1時間を引いています。

TimeTo値から1時間を減算しようとしていると推測します。

var TimeFrom = TimeTo.AddHours(-1);
于 2012-12-04T10:03:33.130 に答える
14

new DateTime()表現可能な最小値を返しますDateTime; -1これに時間を追加すると、DateTimeを表すことができなくなります。

あなたはおそらくしたいDateTime TimeFrom = TimeTo.AddHours(-1);

于 2012-12-04T10:02:24.827 に答える
5

試す:

DateTime TimeTo = DateTime.Now;
DateTime TimeFrom = TimeTo.AddHours(-1);
于 2012-12-04T10:02:36.857 に答える
1

withを作成すると、 DateTimewithnew DateTime()が得られます...これから実際に何も減算することはできません...そうでない場合は、取得した例外が発生します... MSDNを参照してくださいDateTimeDateTime.MinValue

于 2012-12-04T10:03:44.160 に答える
1

日付または時刻のデータを確認してください。日付または時刻に十分な桁がありません。例の日付は8桁の20140604で、時刻はこの180203のように6桁である必要があります。このため、エラーが発生します。私もこのエラーが発生し、時刻18000を見つけて、これを180000に変更します。問題は解決しました。

于 2014-10-09T10:38:34.163 に答える
0

あなたの場合TimeFrom、-1を追加できない日時が保持されます。呼び出すことができます

DateTime TimeFrom = TimeTo .AddHours(-1);

また

DateTime TimeFrom = new DateTime().now.AddHours(-1);

どちらも同じ結果になります。

于 2012-12-04T10:14:52.883 に答える
0

私のエラーでは、時刻を00:00ではなく24:00として使用しました

于 2018-05-20T12:55:03.383 に答える