IOS 日期当月天数,周几,上个月下个月

//给一个日期获取这个月的天数

- (NSInteger)numberOfDayInMonthWithDateStr:(NSDate*)dateStr {

    NSDate* date = dateStr;

    NSCalendar * calendar = [[NSCalendar alloc]initWithCalendarIdentifier:NSCalendarIdentifierGregorian];

    // 通过该方法计算特定日期月份的天数

    NSRangemonthRange =  [calendarrangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:date];

    returnmonthRange.length;

}

//判断一个日期是周几

- (NSString*)weekdayStringWithDate:(NSDate*)date {

    //获取星期几

    NSDateComponents *componets = [[NSCalendar autoupdatingCurrentCalendar] components:NSCalendarUnitWeekday fromDate:date];

    NSIntegerweekday = [componetsweekday];//1代表星期日,2代表星期一,后面依次

    NSArray *weekArray = @[@"周日",@"周一",@"周二",@"周三",@"周四",@"周五",@"周六"];

    NSString*weekStr = weekArray[weekday-1];

    returnweekStr;

}

//给一个dateg返回上一个月或者下一个月

-(NSDate*)history_CreatDate:(NSDate*)newDate number:(NSInteger)num AddAndSubtract:(BOOL)AddSub {

    //获取NSCalender单例

    NSCalendar *calender = [NSCalendar currentCalendar];

    // 设置属性,因为我只需要年和月,这个属性还可以支持时,分,秒

    NSDateComponents *cmp = [calender components:(NSCalendarUnitMonth | NSCalendarUnitYear) fromDate:newDate];

    //设置上个月,即在现有的基础上减去一个月(2017年1月 减去一个月 会得到2016年12月)

    if(AddSub) {

        [cmpsetMonth:[cmpmonth] + num];

    }else{

        [cmpsetMonth:[cmpmonth] - num];

    }

    //拿到上个月的NSDate,再用NSDateFormatter就可以拿到单独的年和月了。

    return[calenderdateFromComponents:cmp];

}

你可能感兴趣的:(IOS 日期当月天数,周几,上个月下个月)