186

C# プログラムに次のコードがあります。

DateTime dateForButton =  DateTime.Now;  
dateForButton = dateForButton.AddDays(-1);  // ERROR: un-representable DateTime

実行するたびに、次のエラーが発生します。

加算または減算された値は、表現できない DateTime になります。
パラメータ名: 値

このエラー メッセージはこれまで見たことがなく、なぜこのメッセージが表示されるのかわかりません。これまでに読んだ回答から、加算操作で -1 を使用して日数を減算できると信じるようになりましたが、私の質問が示すように、これは私がやろうとしていることには当てはまりません。

4

9 に答える 9

359
DateTime dateForButton = DateTime.Now.AddDays(-1);
于 2012-06-22T07:48:21.353 に答える
85

このエラーは通常、間隔を減算しようとしDateTime.MinValueたり、何かを追加したりしたい場合に発生しますDateTime.MaxValue(または、この最小 - 最大間隔外の日付をインスタンス化しようとします)。MinValueどこかに割り当てていませんか?

于 2012-06-22T07:46:28.780 に答える
55

できるよ:

DateTime.Today.AddDays(-1)
于 2014-10-31T12:17:25.083 に答える
43

次のコードを使用できます。

dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));
于 2012-06-22T07:41:12.177 に答える
12

は、参照からそのdateTime.AddDays(-1) 1 日を減算しません。dateTime元の参照からその 1 日を差し引いた新しいインスタンスが返されます。

DateTime dateTime = DateTime.Now;
DateTime otherDateTime = dateTime.AddDays(-1);
于 2016-11-17T12:32:52.070 に答える