問題:365(366)を介して、今年の日、1年続いているYYYYDDDの形式で序日付形式のC#
あなたが与えられた日付、。たとえば、今日は2009135(5/15/2009)となります。
これで新しい日時を作成する最も良い方法は何ですか? Rubyでは、私はそう
Date.ordinal(2009, 135)
C#のための同様のコンストラクタがありますように2つの数値を取るコンストラクタがあると知っていますか?
問題:365(366)を介して、今年の日、1年続いているYYYYDDDの形式で序日付形式のC#
あなたが与えられた日付、。たとえば、今日は2009135(5/15/2009)となります。
これで新しい日時を作成する最も良い方法は何ですか? Rubyでは、私はそう
Date.ordinal(2009, 135)
C#のための同様のコンストラクタがありますように2つの数値を取るコンストラクタがあると知っていますか?
うーん、私はもっと直接的な方法があるかどうかわからないが、これはどの程度
new DateTime(year, 1, 1).AddDays(day - 1);
を動作するはずです:これは2009001として表現されている2009年の1日目に依存している
new DateTime(ordinal/1000, 1, 1).AddDays((ordinal % 1000) - 1);
むしろ20091。後者の場合は、少し難解です(もちろん厳密には厳しいわけではありませんが)。
私はこのような形式からかなり早く離れようとしますが、それはまったく一般的ではありません。完全に判読できません。 「2009001」形式を仮定すると、それは少なくとも合理的に分類されますが、私はそれ以外にはそれほど多くのことを考えることはできません。
int year = 2009;
int month = 1;
int day = 1;
int dayOfYear= 135;
DateTime myDate = new DateTime(year, month, day);
myDate.AddDays(dayOfYear - 1);
私はそれを変換しています。これは私たちに手渡されているところです。私たちはそのフォーマットを取ってデータベースにインポートしますが、通常のdatetimeに変換します。 Btw、私はあなたの答えが好きです、それは最初の答えのようにそれをするヒットが、私はむしろ1つの行でそれをやりたいです。私の中のRubyを推測してください。そしてyahは、常にYYYYddd形式で出てきます。 – taelor
btw、私は実際にちょうど他人に答えを出しました。彼は4kポイントしか持っていないし、愛を分かち合いたい。 – taelor
問題はありません - 私は15を失うと私をあまりにも傷つけるだろうとは思わない:) –