如何从我周的第一天是星期日的特定日期获得正确的一年中的一周数。
例如:
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
答案 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
由于:
代码段:
CalendarWeekRule.FirstFullWeek
输出:
演示: