Getting the last day of a month

前端 未结 9 773
别跟我提以往
别跟我提以往 2020-12-08 00:24

How can I get the last day of the current month as an NSDate?

9条回答
  •  孤城傲影
    2020-12-08 01:01

    Workaround Function:

    -(int)GetLastDayOfMonth:(NSDate *)date
    {
        int last_day = 27;
        NSCalendar *cal=[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
        NSDateComponents *compsMonth = [cal components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:date];
        [compsMonth setDay:last_day];
        int month = [compsMonth month]; 
        while(TRUE){
            [compsMonth setDay:last_day+1];
            NSDate *dateFuture = [cal dateFromComponents:compsMonth];
            NSDateComponents *futureComps = [cal components:NSWeekdayCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:dateFuture];
            if(month != [futureComps month]){
                return last_day;
            }
            last_day+=1;
        }
        return last_day;
    }
    

提交回复
热议问题