// 获取当月的天数
- (NSInteger)getNumberOfDaysInMonth
{
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; // 指定日历的算法 NSGregorianCalendar - ios 8
NSDate * currentDate = [NSDate date];
NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay //NSDayCalendarUnit - ios 8
inUnit: NSCalendarUnitMonth //NSMonthCalendarUnit - ios 8
forDate:currentDate];
return range.length;
- (NSInteger)getNumberOfDaysInMonth
{
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; // 指定日历的算法 NSGregorianCalendar - ios 8
NSDate * currentDate = [NSDate date];
NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay //NSDayCalendarUnit - ios 8
inUnit: NSCalendarUnitMonth //NSMonthCalendarUnit - ios 8
forDate:currentDate];
return range.length;
}
/**
* 获取当月中所有天数是周几
*/
- (void) getAllDaysWithCalender
{
NSUInteger dayCount = [self getNumberOfDaysInMonth]; //一个月的总天数
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
NSDate * currentDate = [NSDate date];
[formatter setDateFormat:@"yyyy-MM"];
NSString * str = [formatter stringFromDate:currentDate];
[formatter setDateFormat:@"yyyy-MM-dd"];
NSMutableArray * allDaysArray = [[NSMutableArray alloc] init];
for (NSInteger i = 1; i <= dayCount; i++) {
NSString * sr = [NSString stringWithFormat:@"%@-%ld",str,i];
NSDate *suDate = [formatter dateFromString:sr];
[allDaysArray addObject:[self getweekDayWithDate:suDate]];
}
NSLog(@"allDaysArray %@",allDaysArray);
}
/**
* 获得某天的数据
*
* 获取指定的日期是星期几
*/
- (id) getweekDayWithDate:(NSDate *) date
{
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; // 指定日历的算法
NSDateComponents *comps = [calendar components:NSWeekdayCalendarUnit fromDate:date];
// 1 是周日,2是周一 3.以此类推
return @([comps weekday]);
}
//获取的时间是国际标准时间,中国用的是东八区的时间,所以你要把时间本地化,然后就行了