iOS 获取七天日期及星期几

2020-03-13  本文已影响0人  冰点雨

获取当前日期开始的七天日期

//获取当前日期开始的七天日期
-(NSMutableArray *)getCurrentDayToLastServeDay{
    NSMutableArray *weekArr = [[NSMutableArray alloc] init];
    NSDate *nowDate = [NSDate date];
    //计算从当前日期开始的七天日期
    for (int i = 0; i < 7; i ++) {
           //从现在开始的24小时
           NSTimeInterval secondsPerDay = i * 24*60*60;
           NSDate *curDate = [NSDate dateWithTimeInterval:secondsPerDay sinceDate:nowDate];
           NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
           [dateFormatter setDateFormat:@"M月d日"];
           NSString *dateStr = [dateFormatter stringFromDate:curDate];//几月几号
        //自定义星期显示
        dateFormatter.weekdaySymbols = @[@"星期日", @"星期一", @"星期二", @"星期三", @"星期四", @"星期五", @"星期六"];
        //自定义日期显示
        dateFormatter.dateFormat = @" EEEE";
        NSString *weekStr = [dateFormatter stringFromDate:curDate];
        NSDictionary *dic = @{@"day":dateStr,@"week":weekStr};
//        NSString *strTime = [NSString stringWithFormat:@"%@%@",dateStr,weekStr];
//        NSLog(@"%@--%@",strTime,weekStr);
           [weekArr addObject:dic];
       }
    return weekArr;
}

获取本周七天日期

-(NSMutableArray *)latelyEightTime{
    NSMutableArray *weekArr = [[NSMutableArray alloc] init];
    NSDate *nowDate = [NSDate date];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *comp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekday  fromDate:nowDate];
    // 获取今天是周几
    NSInteger weekDay = [comp weekday];
    // 获取几天是几号
    NSInteger day = [comp day];
     // 计算当前日期和本周的星期一和星期天相差天数
    long first,last;
    if (weekDay == 1){
        first = -6;
        last = 0;
    }
    else{
        first = [calendar firstWeekday] - weekDay + 1;
        last = 8 - weekDay;
    }
       NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay  fromDate:nowDate];
    //获取周一日期
    [baseDayComp setDay:day + first];
    NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp];
    //计算从周一开始的七天日期
    for (int i = 0; i < 7; i ++) {
        //从现在开始的24小时
        NSTimeInterval secondsPerDay = i * 24*60*60;
        NSDate *curDate = [NSDate dateWithTimeInterval:secondsPerDay sinceDate:firstDayOfWeek];
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"M.d"];
        NSString *dateStr = [dateFormatter stringFromDate:curDate];//几月几号
         //自定义星期显示
        dateFormatter.weekdaySymbols = @[@"星期日", @"星期一", @"星期二", @"星期三", @"星期四", @"星期五", @"星期六"];
        //自定义日期显示
        dateFormatter.dateFormat = @" EEEE";
        NSString *weekStr = [dateFormatter stringFromDate:curDate];
        NSDictionary *dic = @{@"day":dateStr,@"week":weekStr};
        [weekArr addObject: dic];
    }
    return weekArr;
}

上一篇 下一篇

猜你喜欢

热点阅读