您的位置:首页 > 移动开发 > Objective-C

Objective-c 日期 NSDate 基本够做一个简单的日历

2014-10-01 18:55 375 查看
转载自:http://blog.sina.com.cn/s/blog_5fb39f9101017am9.html

//获得当前日期

NSDate *date = [NSDate date];

NSCalendar *calendar = [NSCalendar currentCalendar];

NSDateComponents *comps;

//本年

comps = [calendar components:(NSYearCalendarUnit) fromDate:date];

NSInteger year = [comps year];

//本月

comps = [calendar components:(NSMonthCalendarUnit) fromDate:date];

NSInteger month = [comps month];

//本月第一天的星期

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

NSTimeZone *timeZone = [NSTimeZone localTimeZone];

[formatter setTimeZone:timeZone];

[formatter setDateFormat:@"M/d/yyyy"];

NSString *firstDay = [NSString stringWithFormat:@"%d/%d/%d",month,1,year];

date = [formatter dateFromString:firstDay];

[formatter release];

comps = [calendar components:(NSWeekdayCalendarUnit) fromDate:date];

NSInteger weekday = [comps weekday];

//下月第一天

NSDateComponents *c1 = [[NSDateComponents alloc] init];

[c1 setMonth:1];

NSDate *date2 = [calendar dateByAddingComponents:c1 toDate:date options:0];

[c1 release];

//本月最后一天

NSDateComponents *c2 = [[NSDateComponents alloc] init];

[c2 setDay:-1];

NSDate *date3 = [calendar dateByAddingComponents:c2 toDate:date2 options:0];

[c2 release];

comps = [calendar components:(NSDayCalendarUnit) fromDate:date3];

NSInteger maxDays = [comps day];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: