当我收到年份,周数和星期几时,如何计算C#中的日期。例如: 年= 2011年 周= 27 day = 6
结果应该是2011-7-10
感谢所有人。我基于维基百科算法解决了它。
答案 0 :(得分:2)
此处没有C#代码(抱歉),但假设您正在讨论ISO周日期,您可以找到一个通用算法,用Wikipedia计算ISO周日期的格里高利日期。希望它有所帮助。
答案 1 :(得分: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日。