如何判断NSDate
是否是营业日?也就是说,根据用户当前的语言环境和日历设置,它是否是一个周末 - 所以不是硬编码只是周一到周五?
NSCalendar
有一个firstWeekday
属性,但这似乎只是一个表达性的东西;这是星期天在美国和星期一在英国。
答案 0 :(得分:5)
iOS 8及更高版本的更新:
NSCalendar
现在包含方法- (BOOL)isDateInWeekend:(NSDate *)date
检查特定日历中的日期是否属于周末。区域设置。
旧答案
如果您只想在周末遮荫,[NSDateComponents weekday]
是您的朋友。此方法将在星期日返回1,在星期六返回7。
事实:大多数应用程序假设周末=周六&星期日。 AFAIK对所有使用格里高利历的国家都是正确的。覆盖所有其他日历的唯一可能性是每个日历/区域设置具有本地数据库并监视更改。如果发生此类更改,则需要更新应用程序或必须下载新数据。
如果我们谈论的是工作日(不仅仅是周末),我们正在谈论的事情
您需要的是让用户根据个人和雇主的需要设置您的应用程序。
答案 1 :(得分:0)
如果当天是星期一到星期五,你可以得到,但据我所知,NSDate的营业日没有根据地点的情况,例如firstWeekday,所以你需要自己实施。< / p>
答案 2 :(得分:-1)
使用NSDateComponents
。
NSDate *date = [NSDate date];
NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:date];
NSLog(@"Weekday: %d", dateComponents.weekday);
这也可以区分设备是否位于星期日或星期一被认为是一周的第一天。