使用组件提取一年中的第几周/将星期一设置为第一个工作日
Extract week of year with components / set Monday as first weekday
我正在开发一个应用程序,我在其中反复计算某个日期是一年中的哪一周。
我知道这听起来很简单。如果周日不被评为下周,我会使用日期格式化程序,这让我很烦。
所以我决定使用日期组件。我修改了日历对象,所以第一个工作日是星期一:
+ (NSInteger) getNumberOfWeekOfYearFromDate:(NSDate *)entryDate{
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday: 2];
NSDateComponents *components = [calendar components:NSWeekCalendarUnit | NSYearForWeekOfYearCalendarUnit | NSYearCalendarUnit fromDate:entryDate];
NSInteger weekOfYear = [components weekOfYear];
return weekOfYear;
}
不幸的是,return 值是很大的数字,例如“2147483647”。我究竟做错了什么?我在网上搜索时没有找到任何解决方案。
提前致谢
试试这个:
+ (NSInteger) getNumberOfWeekOfYearFromDate:(NSDate *)entryDate{
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday: 2];
NSDateComponents *components = [calendar components:
NSCalendarUnitWeekOfYear | NSCalendarUnitYear fromDate:entryDate];
NSInteger weekOfYear = [components weekOfYear];
return weekOfYear;
}
我正在开发一个应用程序,我在其中反复计算某个日期是一年中的哪一周。
我知道这听起来很简单。如果周日不被评为下周,我会使用日期格式化程序,这让我很烦。
所以我决定使用日期组件。我修改了日历对象,所以第一个工作日是星期一:
+ (NSInteger) getNumberOfWeekOfYearFromDate:(NSDate *)entryDate{
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday: 2];
NSDateComponents *components = [calendar components:NSWeekCalendarUnit | NSYearForWeekOfYearCalendarUnit | NSYearCalendarUnit fromDate:entryDate];
NSInteger weekOfYear = [components weekOfYear];
return weekOfYear;
}
不幸的是,return 值是很大的数字,例如“2147483647”。我究竟做错了什么?我在网上搜索时没有找到任何解决方案。
提前致谢
试试这个:
+ (NSInteger) getNumberOfWeekOfYearFromDate:(NSDate *)entryDate{
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday: 2];
NSDateComponents *components = [calendar components:
NSCalendarUnitWeekOfYear | NSCalendarUnitYear fromDate:entryDate];
NSInteger weekOfYear = [components weekOfYear];
return weekOfYear;
}