2012-03-01 2 views
-4

inbuilt DayOfYear関数を使用せずに今年の日付(2月2日は33など)を取得したいと考えています。 現在の日付はすぐにDateTimeピッカーに変更されます。 すべての応答が非常に高く評価されます。DayOfYear機能を使用していない日を取得していますか?

+0

なぜ?好奇心... – Asken

+3

「DateTime.Now.DayOfYear」を使用してみませんか? –

+3

組み込みの機能を使用したくない場合は、*なぜそうでないのかについての詳細を提供できれば助かります。宿題の場合は、大丈夫です。あなたの環境にいくつかの特別な制限がある場合、*詳細*それらの機能は組み込まれていない場合、人々が盲目的に動作している場合、提案された回答がどのようになるかをどのように知っていますか? –

答えて

3

「開始月」の値(1、32、60、90、121など)のハードコードされた配列を使用して自分で計算することができ、うるう年と月が3月かそれ以降...しかし、なぜ内蔵のプロパティを使用していないのですか?

また、Noda Timeは、これはあなたがページをユーザーに提供している場合は適切ではないかもしれないシステムタイムゾーンを、使用することに注意してください(DateTime.DayOfYear :)

// Ideally, use an injected IClock for testability... 
var now = SystemClock.SystemNow.InZone(DateTimeZone.SystemDefault); 
var dayOfYear = now.DayOfYear; 

を使用していませんさまざまなタイムゾーンを考えてください。

4

DateTime.Now.DayOfYearを使用しない理由があると思われます。また、この質問に答える人は、 、私の答えは:

int dayOfYear = DateTime.Now.DayOfYear; 
0

あなたはそれを自分で計算することができます。

protected int GetJulianDate(System.DateTime dDate) 
{ 
    // CREATE THE JULIAN DATE FROM THE PROVIDED DATE 
    // dDate - THE DATE TO BE CONVERTED 
    DateTime firstDay = DateTime.Parse("01/01/" + dDate.Year); 
    TimeSpan ts = dDate.Subtract(firstDay); 
    return ts.Days + 1; 
} 
関連する問題