获取当月第一天是周几
- (void)calculationThisMonthFirstDayInWeek:(NSDate *)date;
{
if (isEmpty(date)) {
date = [NSDate date];
}
NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents * comps = [[NSDateComponents alloc] init];
NSDateComponents * theComps = [[NSDateComponents alloc] init];
NSInteger unitFlags = NSCalendarUnitDay | NSCalendarUnitWeekday | NSCalendarUnitMonth | NSCalendarUnitYear;
comps = [calendar components:unitFlags fromDate:date];
theComps = [calendar components:unitFlags fromDate:[NSDate date]];
// NSInteger theMonth = [theComps month];// 本月的月份
NSUInteger day = [comps day];// 是本月第几天
// NSInteger todayInMonth = day;
// NSString *dateStr = [[self showDateFormatter] stringFromDate:date];
// NSString *todayStr = [dateFormatter stringFromDate:[NSDate date]];
if (day > 1) {// 如果不是本月第一天
// 将日期推算到本月第一天
NSInteger hours = (day - 1) * -24;
date = [NSDate dateWithTimeInterval:hours * 60 * 60 sinceDate:date];
}
comps = [calendar components:unitFlags fromDate:date];
dayInWeek = [comps weekday] - 1;// 是周几
// NSInteger year = [comps year];// 公历年
// NSInteger month = [comps month];// 公里月
// if ([dateStr isEqualToString:todayStr]) {
// NSLog(@"%ld",(long)day + dayInWeek - 2);
// }
}
获取某年某月 有多少天
// 获取某年某月总共多少天
- (NSInteger)getDaysInMonth:(NSInteger)year month:(NSInteger)imonth {
// imonth == 0的情况是应对在CourseViewController里month-1的情况
if((imonth == 0)||(imonth == 1)||(imonth == 3)||(imonth == 5)||(imonth == 7)||(imonth == 8)||(imonth == 10)||(imonth == 12))
return 31;
if((imonth == 4)||(imonth == 6)||(imonth == 9)||(imonth == 11))
return 30;
if((year%4 == 1)||(year%4 == 2)||(year%4 == 3))
{
return 28;
}
if(year%400 == 0)
return 29;
if(year%100 == 0)
return 28;
return 29;
}
获取本月有多少天
- (NSInteger)calculationThisMonthDays:(NSDate *)days
{
NSCalendar * calendar = [NSCalendar currentCalendar];
if (isEmpty(days)) {
days = [NSDate date];
}
NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:days];
return range.length;
}