國曆轉農曆

國曆轉農曆

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