您的位置:首页 > 移动开发 > IOS开发

ios 获取当前月的总天数

2017-02-12 12:41 295 查看
// 获取当月的天数

- (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]);

}

//获取的时间是国际标准时间,中国用的是东八区的时间,所以你要把时间本地化,然后就行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息