//获取当前时间 NSDate *now = [NSDate date]; NSLog(@" now date is: %@ ",now); NSCalendar *calendar = [NSCalendar currentCalendar]; NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; NSDateComponents *dateComponent = [calendar components:unitFlags fromDate:now]; int year = [dateComponent year]; int month = [dateComponent month]; int day = [dateComponent day]; int hour = [dateComponent hour]; int minute = [dateComponent minute]; int second = [dateComponent second]; NSLog(@" year is: %d ",year); NSLog(@" month is: %d ",month); NSLog(@" day is: %d ",day); NSLog(@" hour is: %d ",hour); NSLog(@" minute is: %d ",minute); NSLog(@" second is: %d ",second);
* = DateTime NSString [Self LunarForSolarYear: Month year: month The Day: Day]; // lunar transfer function - (NSString *) :( LunarForSolarYear int ) :( wCurYear Month int ) wCurMonth Day: (NSInteger) wCurDay { // lunar date name NSArray * cDayName = [NSArray arrayWithObjects: @ " * " , @ " started " , @ " two days " , @ " three days " , @ " fourth day " , @ " fifth day " , @ " sixth day " , @ "Seventh day " ,@ " Eighth day " , @ " Ninth " , @ " tenth " , @ " eleven " , @ " twelve " , @ " thirteen " , @ " fourteen " , @ " fifteen " , @ " sixteen " , @" seventeen " , @" eighteen " , @" nineteen " , @" twenty " , @"Twenty " , @" Twenty-two . ", @ " Niansan " , @ " twenty-four " , @ " twenty-five " , @ " Nian Liu " , @ " Nianqi " , @ " Nianba " , @ " Eve " , @ " thirty " , nil ]; // lunar month names NSArray * cMonName = [NSArray arrayWithObjects: @ " * " , @ " positive " , @ " two " , @ " three ",@"四", @ " Five " , @ " six " , @ " seven " , @ " eight " , @ " nine " , @ " ten " , @ " eleven " , @ " Prince " , nil]; // calendar month days preceding const int wMonthAdd [ 12 is ] = { 0 , 31 is , 59 , 90 , 120 , 151 , 181 , 212 ,243, 273 , 304 , 334 }; // Lunar data const int wNongliData [ 100 ] = { 2635 , 333 387 , 1701 , 1748 , 267 701 , 694 , 2391 , 133 423 , 1175 , 396 438 , 3402 , 3749 , 331 177 , 1453 , 694 , 201 326 , 2350 , 465 197 , 3221 ,3402 ,400202,2901,1386,267611,605,2349,137515,2709,464533,1738 ,2901,330421,1242,2651,199255,1323,529706,3733,1706,398762 ,2741,1206,267438,2647,1318,204070,3477,461653,1386,2413 ,330077,1197,2637,268877,3365,531109,2900,2922,398042,2395 ,1179,267415,2635,661067,1701,1748,398772,2742,2391,330031 ,1175,1611,200010,3749,527717,1452,2742,332397,2350,3222 ,268949,3402,3493,133973,1386,464219,605,2349,334123,2709 ,2890,267946,2773,592565,1210,2651,395863,1323, 2707 , 265 877 }; static int nTheDate, nIsEnd, m, K, n-, I, NBit; // calculate the number of days to the initial time February 8, 1921: The 1921-2-8 (first day) nTheDate = ( wCurYear - 1921 ) * 365 + (wCurYear - 1921 ) / . 4 + wCurDay + wMonthAdd [wCurMonth - . 1 ] - 38 is ; IF (((wCurYear%! . 4 )) && (wCurMonth> 2 )) nTheDate = nTheDate + . 1 ; / / calculated lunar heavenly, branched, month, day nIsEnd = 0 ; m = 0; The while (! = NIsEnd . 1 ) { IF (wNongliData [m] < 4095 ) K = . 11 ; the else K = 12 is ; n = K; the while (n> = 0 ) { // Get wNongliData (m) of the n-th bit value NBit = wNongliData [m]; for (I = . 1 ; I <n-+ . 1 ; I ++ ) NBit = NBit / 2 ; NBit= nBit % 2; if (nTheDate <= (29 + nBit)) { nIsEnd = 1; break; } nTheDate = nTheDate - 29 - nBit; n = n - 1; } if(nIsEnd) break; m = m + 1; } wCurYear = 1921 + m; wCurMonth = k - n + 1; wCurDay = nTheDate; if (k == 12) { if (wCurMonth == wNongliData[m] / 65536 + 1) wCurMonth = 1 - wCurMonth; else if (wCurMonth > wNongliData[m] / 65536 + 1) wCurMonth = wCurMonth - 1; } //生成农历月 NSString *szNongliMonth; if (wCurMonth < 1){ szNongliMonth = [NSString stringWithFormat:@"闰%@",(NSString *)[cMonName objectAtIndex:-1 * wCurMonth]]; }else{ szNongliMonth = (NSString *)[cMonName objectAtIndex:wCurMonth]; } //生成农历日 NSString *szNongliDay = [cDayName objectAtIndex:wCurDay]; //合并 NSString *lunarDate = [NSString stringWithFormat:@"农历%@月%@",szNongliMonth,szNongliDay]; return lunarDate; }