国历转农历
NSCalendar
支援几种国家的历法后,国历转农历的转换就相当的方便!范例是将日期1979-12-03转为农历,转换之前将日期转入NSDate再将NSCalendar
设定成中国历法(NSChineseCalendar),使用NSDateComponents
物件处理一下,之后就是以农历为单位的结果。
//-----------start----------- NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; [dateFormatter1 setDateFormat:@"yyyy-MM-dd"]; NSDate *startingDate = [dateFormatter1 dateFromString:@"1979-12-03"]; // NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSChineseCalendar]; NSUInteger unitFlags = NSMonthCalendarUnit | NSYearCalendarUnit | NSDayCalendarUnit; NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:startingDate]; // NSInteger days = [dateComponents day]; NSInteger months = [dateComponents month]; NSLog(@"Date 1979-12-03 to NSChineseCalendar %d / %d",months,days); //------------end------------
输出结果:
2013-03-29 13:39:23.022 testa1[50546:c07] Date 1979-12-03 to NSChineseCalendar 10 / 14