私のコードにはこのようなものがDateTime.Now.ToString("dd.MM.yy");
あります。それに1週間追加する必要があります。たとえば、intに変換してから追加しようとしましたが、30までになると問題が発生します5.4.2012
。12.4.2012
それを行うための賢い方法を教えていただけますか?
DateTime
文字列に変換する準備ができるまで、そのままにしておきます。
DateTime.Now.AddDays(7).ToString("dd.MM.yy");
まず、データを表示するかシリアル化する (たとえば、JSON に変換する、またはファイルに保存する) 準備ができるまで、常にデータをネイティブ タイプのままにしておきます。2 つの変数を加算または乗算する前に文字列に変換することはint
ありません。したがって、日付に対しても変換しないでください。
ネイティブ型にとどまることには、DateTime
ほとんどの文字列形式よりも小さい 8 バイトとして内部的に格納されるなど、いくつかの利点があります。しかし、最大の利点は、.NET Framework が、日付と時刻の計算を実行し、ソース文字列から datetime 値を解析するための一連の組み込みメソッドを提供することです。完全なリストはここにあります。
したがって、あなたの答えは次のようになります。
DateTime.Now
ます。DateTime.Now.Date
現在時刻よりも午前 0 時を使用する場合に使用します。AddDays(7)
1週間後の計算に使用します。この方法では、該当する場合、翌月または翌年への繰り越しが自動的に考慮されることに注意してください。うるう日も考慮されます。// Current local server time + 7 days
DateTime.Now.AddDays(7).ToString("dd.MM.yy");
// Midnight + 7 days
DateTime.Now.Date.AddDays(7).ToString("dd.MM.yy");
また、フレームワークには他にも役立つメソッドがたくさんあります。
TimeSpan
時間間隔を操作するためのクラスのようにAddDaysメソッドを使用できない理由
DateTime.Now.AddDays(7)