c# - 如何获取给定年份的周数

标签 c# week-number

尝试编写一个正确的函数来返回给定年份的周数,但没有成功。

我正在寻找的功能示例:

int weeks =  GetWeeksInYear ( 2012 )

应该返回 52 周//意味着 2012 年只有 52 周。

P.s.: 一年内可以是52、53、54周,51周就不一定了

最佳答案

参见 Calendar.GetWeekOfYear方法

public int GetWeeksInYear(int year)
{
      DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
      DateTime date1 = new DateTime(year, 12, 31);
      Calendar cal = dfi.Calendar;
      return  cal.GetWeekOfYear(date1, dfi.CalendarWeekRule, 
                                          dfi.FirstDayOfWeek);
}

请注意找出与客户习惯的文化相匹配的日历的正确 CalendarWeekRule 和 FirstDayOfWeek。 (对于某些压光机,它可能会有所不同...)

关于c# - 如何获取给定年份的周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17391073/

相关文章:

c# - Xamarin 4 中旧的 ListView 和新的 CollectionView 有什么区别?

c# - EntityType 没有在 MVC 4 中定义的键

c# - ASP.Net Core MVC - 在几个 ViewModel 属性上使用 ModelState 验证的 Ajax 表单提交

c# - Android转WP7绝对新手问题: C# or VB?

jodatime - Joda Time : Get max number of weeks for particular year

c# - 如何在 C# 中捕获包含匿名方法的 Action 的异常?

c - 一年中具有可变开始日和锚定日的周

php - 有人能解释一下 date ("YW", strtotime ("2016-01-02"));返回 “201653” ?

java - SimpleDateFormat 周年