2011-07-12 71 views
2

我如何計算C#中的日期,當我收到年份,星期數和星期幾時。例如: 年= 2011 周= 27 天= 6需要根據年 - 周 - 日來計算日期

結果應該是2011-7-10


感謝所有。我根據維基百科算法解決了這個問題。

+0

你想要第27周的第6天(26周全天,加上6天)或27周全天,然後6天添加到它?另外,我沒有從你的例子中得到2011-7-10 ...(26周* 7天,再加上6天,只讓我們到了今年的第188天,即2011-7-7) –

+0

在你周圍的其他方式有這種方法:http://msdn.microsoft.com/en-us/library/0666bawa.aspx –

+0

可能重複[計算日期從週數](http://stackoverflow.com/questions/ 662379 /計算最新-從週數) –

回答

2

這裏沒有C#代碼(對不起),但假設你在談論ISO日期日期,你可以找到一個通用算法來計算在Wikipedia中的ISO週日期的公曆日期。希望能幫助到你。

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日。