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

来源:互联网 发布:微信抢红包排雷软件 编辑:程序博客网 时间:2024/05/29 15:03

 转载自: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];
0 0
原创粉丝点击