國曆轉農曆
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