为了账号安全,请及时绑定邮箱和手机立即绑定

NSCalendar一周的第一天

NSCalendar一周的第一天

iOS
慕沐林林 2019-12-12 14:10:44
有谁知道是否可以在NSCalendar上设置一周的第一天,或者是否有已经将星期一作为一周的第一天而不是星期日的日历。我目前正在开发一个基于一周工作的应用程序,它需要在星期一而不是星期日开始。我很可能会做一些工作来解决此问题,但是会有很多极端情况。我更喜欢平台为我做。提前致谢这是我正在使用的一些代码。现在是星期六,所以我希望工作日将是6,而不是7。这意味着星期日将是7,而不是转到0。NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];[gregorian setFirstWeekday:0];unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit;NSDateComponents *todaysDate = [gregorian components:unitFlags fromDate:[NSDate date]];int dayOfWeek = todaysDate.weekday;
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

此代码构造一个日期,该日期设置为当前星期的星期一:


NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];


NSDate *today = [NSDate date];

NSDate *beginningOfWeek = nil;

BOOL ok = [gregorian rangeOfUnit:NSWeekCalendarUnit startDate:&beginningOfWeek

                                interval:NULL forDate: today];



查看完整回答
反对 回复 2019-12-13
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我认为,此设置应根据用户区域设置是动态的。因此,应使用:


NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

[gregorian setLocale:[NSLocale currentLocale]];

这将导致日历根据用户区域设置自动设置第一个工作日。除非您为特定目的/用户区域设置开发应用程序(或希望允许用户选择这一天)。



查看完整回答
反对 回复 2019-12-13
  • 3 回答
  • 0 关注
  • 435 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信