C# DateTime を使用して、0 (または真夜中) を過ぎた時刻を減算したいと思います。ただし、そうするとエラーが発生します。ズームイン、ズームアウト、スクロールできるタイムラインを作成しようとしています。次のエラーが表示されます:「値を加算または減算すると、表現できない DateTime になります。」
DateTime は 0 から 23 までをラップアラウンドする方法を知らないと思いますか? どうすればこれを回避できますか?
C# DateTime を使用して、0 (または真夜中) を過ぎた時刻を減算したいと思います。ただし、そうするとエラーが発生します。ズームイン、ズームアウト、スクロールできるタイムラインを作成しようとしています。次のエラーが表示されます:「値を加算または減算すると、表現できない DateTime になります。」
DateTime は 0 から 23 までをラップアラウンドする方法を知らないと思いますか? どうすればこれを回避できますか?
TimeSpan
aから aを減算するDateTime
と、真夜中を過ぎて「ラップアラウンド」します。
> var d1 = DateTime.Parse("4/11/2012 12:30:00 AM");
> var d2 = d1.Subtract(new TimeSpan(1, 15, 0));
>
> d2
[4/10/2012 11:15:00 PM]
真夜中に設定された TimeSpan から 5 分を引くと、-00:05 になります。これにより、Timespan が -00:05 ではなく 23:55 になります。
DateTime.Today.Subtract(TimeSpan.FromMinutes(5)).TimeOfDay;