【问题标题】:How to get start date and end date of a week in ios [duplicate]如何在ios中获取一周的开始日期和结束日期[重复]
【发布时间】:2013-06-08 11:28:20
【问题描述】:

请查看以下代码行:

NSCalendar *calendar = [NSCalendar currentCalendar];
NSInteger weekNumber =  [[calendar components: NSWeekCalendarUnit fromDate:date] week];

现在我们如何获取给定周数的第一天和最后一天(假设该周从星期一到星期日开始)。

如果有可能获得所有日期的数组属于同一周数。

【问题讨论】:

    标签: iphone ios nsdate nscalendar nsdatecomponents


    【解决方案1】:

    要获取一周的第一天,可以使用以下代码。

        NSDate *now = [NSDate date];
    
        NSCalendar *calendar = [NSCalendar currentCalendar];
        NSInteger weekNumber =  [[calendar components: NSWeekCalendarUnit fromDate:now] week];
    
        NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    
        NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now];
        [comp setWeek:weekNumber];  //Week number.
        [comp setWeekday:1]; //First day of the week. Change it to 7 to get the last date of the week
    
        NSDate *resultDate = [gregorian dateFromComponents:comp];
    
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"MMM d, yyyy"];
    
        NSString *myDateString = [formatter stringFromDate:resultDate];
        NSLog(@"%@",myDateString);
    

    如上面代码中的注释,将 setWeekday 方法的参数更改为 7 以获取一周的最后一天。

    一旦你有了一周的第一天和最后一天,你就可以得到下面链接中提到的所有日期。 Array for dates between two dates

    注意:对于地区设置 UK,一周从星期一开始。

    更改 iPhone 日历以将星期一显示为一周的第一天。 1.点击“设置” 2.点击“通用” 3.点击“国际” 4.点击“区域格式” 5.选择“英国”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 2018-10-05
      • 2017-08-02
      • 1970-01-01
      • 2021-01-18
      • 2011-07-30
      • 1970-01-01
      相关资源
      最近更新 更多