从星期日星期开始的给定日期获取周数

时间:2018-05-18 06:48:07

标签: c# .net asp.net-mvc date week-number

如何从我周的第一天是星期日的特定日期获得正确的一年中的一周数。

例如:

let user_id = "123456" func viewBalance() { Alamofire.request ("http://myurl2/wallet/\(user_id)").responseJSON { response in print (response) if let balanceJSON = response.result.value { let dataObject:Dictionary = balanceJSON as! Dictionary<String, Any> print(dataObject) let balanceObject:Dictionary = dataObject["data"] as! Dictionary<String, Any> let balance:String = balanceObject["account_balance_display"] as! String let newBalance = balance.dropFirst(2) self.balanceLabel.text = "\(newBalance)" } } } 是第18周

6 May 2018 - 12 May 2018是第19周

我尝试了以下扩展方法但无法达到预期效果。它给予 19 20 一周,我希望分别为 18 19

13 May 2018 - 19 May 2018

2 个答案:

答案 0 :(得分:1)

您需要更改方法

的参数

CultureInfo.InvariantCulture.Calendar.GetWeekOfYear()

CalendarWeekRule.FirstFourDayWeek -> CalendarWeekRule.FirstFullWeek

  

根据FirstFullWeek的文件 - 表示一年中的第一周是在一年中第一天或之后的第一天指定的第一天开始。

像这样

public static int GetWeekOfYear(DateTime date)
{
    return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFullWeek, DayOfWeek.Sunday);
}

答案 1 :(得分:1)

CalendarWeekRule Enumeration:为确定一年中的第一周定义不同的规则。

以前您使用的是:

               --------->
               ^        |1
       0.5     | <------v
1 -----------> 2 
^             |
|4            |1
|     2       v
4<------------3 

需要替换为:

CalendarWeekRule.FirstFourDayWeek

由于:

enter image description here

代码段:

CalendarWeekRule.FirstFullWeek

输出:

enter image description here

演示:

dotNetFiddle