2

年、週番号、曜日を受け取ったときにC#で日付を計算するにはどうすればよいですか。例: 年 = 2011 週 = 27 日 = 6

結果は 2011-7-10 になるはずです


ありがとうございます。ウィキペディアのアルゴリズムに基づいて解決しました。

4

2 に答える 2

2

ここには C# コードはありません (申し訳ありません) が、ISO の週の日付について話していると仮定すると、 Wikipediaで ISO の週の日付のグレゴリオ暦の日付を計算する一般的なアルゴリズムを見つけることができます。それが役に立てば幸い。

于 2011-07-12T14:40:23.763 に答える
2

これはうまくいくはずです:

 public static DateTime GetDateTime(int year, int week, int day, CultureInfo cultureInfo)
    {
        DateTime firstDayOfYear = new DateTime(year, 1, 1);
        int firstWeek = cultureInfo.Calendar.GetWeekOfYear(firstDayOfYear, cultureInfo.DateTimeFormat.CalendarWeekRule, cultureInfo.DateTimeFormat.FirstDayOfWeek);
        int dayOffSet = day - (int)cultureInfo.DateTimeFormat.FirstDayOfWeek + 1;
        return firstDayOfYear.AddDays((week - (firstWeek + 1)) * 7 + dayOffSet + 1);
    }

私の実装はゼロベースではないことを指摘しておく必要があります。(つまり、年 = 2011、週 = 27、日 = 6) は 2011 年 7 月 2 日です。

于 2011-07-12T15:04:57.157 に答える