之前在网上找了很多例子,但是大多封装的太深,对于我这种小白来说,有点看不懂,自己就研究一下,写了一个。废话不多说,直接上图。
对于日历来说重要的有以下三点:
1、判断某月有几天。
2、判断某月第一天是星期几。
3、判断选择的是星期几。
剩下的就是纯粹的界面摆放。
一、判断某月有多少天
//判断一个月有多少天
NSCalendar *calendar = [NSCalendar currentCalendar];
NSRange range =[calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:_recordDate];
NSUInteger numberOfDaysInMonth = range.length;
二、判断某月第一天是星期几
//判断某月的第一天是星期几 星期日 返回 1
-(NSInteger)firstDay:(NSDate *)date
{
//获取当前月的第一天
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [gregorian components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay|kCFCalendarUnitHour|kCFCalendarUnitMinute|kCFCalendarUnitSecond fromDate:date];
[comps setDay:1];
NSDate *firstDay = [cal dateFromComponents:comps];
//获取当前月的第一天是星期几 星期日 返回 1
NSDateComponents *dateComponents = [gregorian components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond | kCFCalendarUnitWeekday | NSCalendarUnitWeekday | NSCalendarUnitWeekOfMonth | NSCalendarUnitWeekOfYear fromDate:firstDay];
return dateComponents.weekday;
}
三、判断选择的是星期几
//获取选择是星期几 星期日 返回 1
-(NSString *)todayDate:(NSDate *)date
{
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
NSDateComponents *dateComponents = [gregorian components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond | kCFCalendarUnitWeekday | NSCalendarUnitWeekday | NSCalendarUnitWeekOfMonth | NSCalendarUnitWeekOfYear fromDate:date];
NSArray *weekArray = [NSArray arrayWithObjects:@"星期日", @"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六",nil];
return weekArray[dateComponents.weekday - 1 ];
}
例子下载地址 http://download.csdn.net/detail/qq_14827361/9512952