现在的位置: 首页 > 综合 > 正文

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

2017年10月08日 ⁄ 综合 ⁄ 共 1147字 ⁄ 字号 评论关闭

 转载自: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];

抱歉!评论已关闭.