扩展了前一篇农历的内容
转载请标明来自:http://blog.csdn.net/zhao_yin/
获取农历节日的算法:
+(NSString *)getLunarHoliDayDate:(NSDate *)date{
NSTimeInterval timeInterval_day = float(60*60*24);
NSDate *nextDay_date = [NSDate dateWithTimeInterval:timeInterval_day sinceDate:date];
NSCalendar *localeCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSChineseCalendar];
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *localeComp = [localeCalendar components:unitFlags fromDate:nextDay_date];
if ( 1 == localeComp.month && 1 == localeComp.day ) {
[localeCalendar release];
return @"除夕";
}
NSDictionary *chineseHoliDay = [NSDictionary dictionaryWithObjectsAndKeys:
@"春节", @"1-1",
@"元宵", @"1-15",
@"端午", @"5-5",
@"七夕", @"7-7",
@"中元", @"7-15",
@"中秋", @"8-15",
@"重阳", @"9-9",
@"腊八", @"12-8",
@"小年", @"12-24",
nil];
localeComp = [localeCalendar components:unitFlags fromDate:date];
NSString *key_str = [NSString stringWithFormat:@"%d-%d",localeComp.month,localeComp.day];
return [chineseHoliDay objectForKey:key_str];
}
以下是根据公里年月日来获取农历节气的方法:
记录表:
const int START_YEAR =1901;
const int END_YEAR =2050;
static int32_t gLunarHolDay[]=
{
0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77, //1901
0X96, 0XA4, 0X96, 0X96, 0X97, 0X87, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78, //1902
0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78, 0X78, //1903
0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X79, 0X78, 0X87, //1904
0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79, 0X79, 0X69, 0X78, 0X77, //1905
0X96, 0XA4, 0X96, 0X96, 0X97, 0X97, 0X79, 0X79, 0X79, 0X69, 0X78, 0X78, //1906
0X96, 0XA5, 0X87, 0X96, 0X87, 0X87, 0X79, 0X69, 0X69, 0X69, 0X78, 0X78, //1907
0X86, 0XA5, 0X96, 0XA5, 0X96, 0X97, 0X88, 0X78, 0X78, 0X69, 0X78, 0X87, //1908
0X96, 0XB4, 0X96, 0XA6, 0X97, 0X97, 0X78, 0X79