//给一个日期获取这个月的天数
- (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];
}
网友评论