【问题标题】:Extract week of year with components / set Monday as first weekday使用组件提取一年中的一周/将星期一设置为第一个工作日
【发布时间】:2015-04-04 05:53:03
【问题描述】:

我正在开发一个应用程序,在该应用程序中,我必须反复计算某个日期在一年中的哪一周。

我知道这听起来很简单。如果周日没有被评为下周,我只会使用日期格式化程序,这让我很恼火。

所以我决定使用日期组件。我修改了日历对象,所以第一个工作日是星期一:

+ (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;
}

不幸的是,返回值是像“2147483647”这样的大数字。我究竟做错了什么?我在网上搜索时没有找到任何解决方案。

提前致谢

【问题讨论】:

    标签: objective-c calendar nsdatecomponents


    【解决方案1】:

    试试这个:

    + (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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-20
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多