OC获取本周日期

来源:互联网 发布:软件开发和互联网 编辑:程序博客网 时间:2024/06/05 07:18

            NSDate *nowDate = [NSDatedate];

        NSCalendar *calendar = [NSCalendarcurrentCalendar];

        NSDateComponents *comp = [calendarcomponents:NSYearCalendarUnit |NSMonthCalendarUnit | NSDayCalendarUnit |NSWeekdayCalendarUnit | NSDayCalendarUnitfromDate:nowDate];

        //获取今天是周几

        NSInteger weekDay = [compweekday];

        //获取几天是几号

        NSInteger day = [compday];

        

        //计算当前日期和本周的星期一和星期天相差天数

        long firstDiff,lastDiff;

        //    weekDay = 1;

        if (weekDay ==1)

        {

            firstDiff = -6;

            lastDiff =0;

        }

        else

        {

            firstDiff = [calendarfirstWeekday] - weekDay + 1;

            lastDiff =8 - weekDay;

        }

      //  NSLog(@"firstDiff: %ld   lastDiff: %ld",firstDiff,lastDiff);

        

        //在当前日期(去掉时分秒)基础上加上差的天数

        NSDateComponents *firstDayComp = [calendarcomponents:NSYearCalendarUnit |NSMonthCalendarUnit | NSDayCalendarUnit fromDate:nowDate];

        [firstDayCompsetDay:day + firstDiff];

        NSDate *firstDayOfWeek = [calendardateFromComponents:firstDayComp];

        

        NSDateComponents *lastDayComp = [calendarcomponents:NSYearCalendarUnit |NSMonthCalendarUnit | NSDayCalendarUnit  fromDate:nowDate];

        [lastDayComp setDay:day + lastDiff];

        NSDate *lastDayOfWeek = [calendardateFromComponents:lastDayComp];

        

        NSDateFormatter *formatter = [[NSDateFormatteralloc] init];

        [formatter setDateFormat:@"dd"];

        NSString *firstDay = [formatterstringFromDate:firstDayOfWeek];

        NSString *lastDay = [formatterstringFromDate:lastDayOfWeek];

       // NSLog(@"%@=======%@",firstDay,lastDay);

        

        int firstValue = firstDay.intValue;

        int lastValue = lastDay.intValue;

        

        NSMutableArray *dateArr = [[NSMutableArrayalloc]init];

        

        if (firstValue < lastValue) {

            for (int j =0; j<7; j++) {

                NSString *obj = [NSStringstringWithFormat:@"%d",firstValue+j];

                [dateArraddObject:obj];

            }

        }

        elseif (firstValue > lastValue)

        {

            for (int j =0; j < 7-lastValue; j++) {

                NSString *obj = [NSStringstringWithFormat:@"%d",firstValue+j];

                [dateArraddObject:obj];


            }

            for (int z =0; z<lastValue; z++) {

                NSString *obj = [NSStringstringWithFormat:@"%d",z+1];

                [dateArraddObject:obj];

            }

        }

0 0
原创粉丝点击