最近做的项目中包含了阳历和阴历共存的需求,总结一下
首先将月份,日,节日单独放到数组中
#define ChineseMonths @[@"正月", @"二月", @"三月", @"四月", @"五月", @"六月", @"七月", @"八月",@"九月", @"十月", @"冬月", @"腊月"]
#define ChineseFestival @[@"除夕",@"春节",@"腊八",@"元旦",@"小年",@"元宵",@"情人",@"妇女",@"植树",@"愚人",@"劳动",@"青年",@"建党",@"建军",@"父亲",@"中元",@"教师",@"老人",@"重阳",@"中秋",@"国庆",@"儿童",@"圣诞",@"端午"]
#define ChineseDays @[@"初一", @"初二", @"初三", @"初四", @"初五", @"初六", @"初七", @"初八", @"初九", @"初十",@"十一", @"十二", @"十三", @"十四", @"十五", @"十六", @"十七", @"十八", @"十九", @"二十", @"廿一", @"廿二", @"廿三", @"廿四", @"廿五", @"廿六", @"廿七", @"廿八", @"廿九", @"三十"]
1.将NSString类型的数据转化为NSDate , 再将其转化为阴历
//字符串转成当天的农历
- (NSString *)chineseCalendarWithString:(NSString *)dateStr
{
NSDateFormatter *dateFormatter = [[NSDateFormatteralloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-d"];
NSDate *date = [dateFormatterdateFromString:dateStr];
return [selfchineseCalendarOfDate:date];
}
2.将NSDate数据转化为阴历字符
返回一个阴历字符
_day 为返回的阴历字符
附:日期格式对照表
格式化参数如下:
G: 公元时代,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,显示为1-12
MMM: 月,显示为英文月份简写,如 Jan//跟系统语言版本有关系,中文显示“3月”,英文显示“Jan”
MMMM: 月,显示为英文月份全称,如 Janualy//跟系统语言版本有关系,中文显示“3月”,英文显示“Jan”
dd: 日,2位数表示,如02
d: 日,1-2位显示,如 2
EEE: 简写星期几,如Sun
EEEE: 全写星期几,如Sunday
aa: 上下午,AM/PM
H: 时,24小时制,0-23
K:时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒