我想在c#中获取上一年的前一周的数量。例如,今天是2015年的第1周,而我想获得最后一周,就像2014年的第52周一样。

目前我的代码是

var weekNo = currentCulture.Calendar.GetWeekOfYear(
             DateTime.Now.Date,
             currentCulture.DateTimeFormat.CalendarWeekRule,
             currentCulture.DateTimeFormat.FirstDayOfWeek);


它返回第1周。我有一个循环,该循环曾经从第1周运行到weekNo-1以获取去年的数据,但是现在weekNo-1返回0,而我希望它返回52。

所以应该是这样的

int lastweekNo = lastWeek(datetime.today);  //returns 52 for today's date, 1 for next Monday's date,..


让我知道如何实现这一目标。任何想法将不胜感激。

谢谢。

最佳答案

如果这给您当前的星期数:

currentCulture.Calendar.GetWeekOfYear(
    DateTime.Now.Date,
    currentCulture.DateTimeFormat.CalendarWeekRule,
    currentCulture.DateTimeFormat.FirstDayOfWeek);


这不给您前一周的号码吗?

currentCulture.Calendar.GetWeekOfYear(
    DateTime.Now.AddDays(-7).Date,
    currentCulture.DateTimeFormat.CalendarWeekRule,
    currentCulture.DateTimeFormat.FirstDayOfWeek);

10-06 13:06