C#からOracle DBを呼び出すクエリがあります。私は、たいていの場合、5年前のデータを取得するためにクエリを書く必要があります。日付範囲... C#
私は現在public const int FIVE_YEARS_IN_DAYS = 1825;
ためのハードコーディングされた値を持っている。しかし、これは、うるう年の正しくありません。私に前の5年間の正しい日数を与える機能はありますか?
C#からOracle DBを呼び出すクエリがあります。私は、たいていの場合、5年前のデータを取得するためにクエリを書く必要があります。日付範囲... C#
私は現在public const int FIVE_YEARS_IN_DAYS = 1825;
ためのハードコーディングされた値を持っている。しかし、これは、うるう年の正しくありません。私に前の5年間の正しい日数を与える機能はありますか?
DateTime now = DateTime.Now;
TimeSpan fiveYears = now.Subtract(now.AddYears(-5));
int numberOfDaysInLastFiveYears = fiveYears.Days;
これは、うるう年のために正しく占めることになります。これを行うと1,826日が得られます。
@Babak Naffasの回答と同じコメントです。 DateTime.Nowをキャプチャする方が安全かもしれないし、キャプチャされた値を使って計算を実行するかもしれない。 – wageoghe
ええ、それは正しいです。 'DateTime.Now'をキャプチャするのが一般的です。 –
年間365.25日を使用しないのはなぜですか? – PostMan
@PostMan - それは必ずしも正確ではありません。私たちは4年ごとにうるう年を持っていません。時間を扱うことは、硬化してテストされたソリューションを使用する方がはるかに優れているプログラミング分野の1つです。噛むのは簡単です。 –
@All ....入力いただきありがとうございます。非常に役に立ちます – MikeTWebb