-2

日付に関する情報を抽出する Web アプリがあります。私が欲しいのは、年全体の週番号を抽出することです。

DateTime nicole = new DateTime();

for (int i = 1; i <= 366; i++)
 {
System.Globalization.CultureInfo ci =     System.Threading.Thread.CurrentThread.CurrentCulture;


  Int32 weekNo = ci.Calendar.GetWeekOfYear(
                    new DateTime(nicole.Year,nicole.Month,nicole.Day),
                    ci.DateTimeFormat.CalendarWeekRule,
                    ci.DateTimeFormat.FirstDayOfWeek
                );
  response.write(ci);

 }

この結果は

 en-USen-USen-USen-USen-USen-USen-USen-USen-USen-USen-USen-USen-USen-USen-USen-USen-

助けてください!

4

4 に答える 4

1

あなたが書いているci- CultureInfo。weekNo代わりに書いてみてください。それは週を表す int になります。1行に367個の数字を書きますが。出力行を読みたいかもしれません

response.write(ci.ToString()) + Environment.NewLine;

編集 - おそらく次のように、for ループを使用したいのではないでしょうか?

Int32 weekNo = ci.Calendar.GetWeekOfYear(
                new DateTime(nicole.Year,nicole.Month,i),
                ci.DateTimeFormat.CalendarWeekRule,
                ci.DateTimeFormat.FirstDayOfWeek
            );
response.write(ci);

さらに編集。コメントが言ったように、iここで先に進んでも役に立ちません。月の日の位置にあるからです。代わりに、コードは次のようになります。

Int32 weekNo = ci.Calendar.GetWeekOfYear(
                new DateTime(nicole.Year,1,1).AddDays(i),
                ci.DateTimeFormat.CalendarWeekRule,
                ci.DateTimeFormat.FirstDayOfWeek
            );
response.write(ci);
于 2013-02-26T07:07:04.763 に答える
0

これがあなたの質問に対する答えではないことは知っていますが、おそらくそれはあなたがやろうとしていることです:

var year = DateTime.Now.Year;
var ci = System.Threading.Thread.CurrentThread.CurrentCulture;
var nicole = new DateTime(year, 1, 1);
while (nicole.Year == year)
{
    response.write(ci.Calendar.GetWeekOfYear(nicole, ci.DateTimeFormat.CalendarWeekRule, ci.DateTimeFormat.FirstDayOfWeek));
    nicole = nicole.AddDays(1);
}
于 2013-02-26T07:20:27.513 に答える
0

書いてみる

response.write(weekNo);

コードの最後のステートメントとして。

于 2013-02-26T07:06:58.407 に答える
0

欲しかったと思います

response.write(weekNo); // not write(ci)

ある種のセパレーターを追加することを忘れないでください。

補足: 使用しているフレームワーク (MVC? プレーンな ASP.Net など) によっては、構造化データを返すためのより良い方法がある可能性があります。つまり、MVC の JsonResultは、区切り記号のない数字を含む文字列よりも値のリストに適している場合があります。

補足 2: 正しい「年間通算日」を取得するには、別のコンストラクターとAddDaysを使用します。

  new DateTime(nicole.Year,1,1).AddDays(i-1);
于 2013-02-26T07:09:14.910 に答える