这个C#类定义了中国农历日历,除了可以输入正常的日历外还可以获得指定年份的生肖、返回年份的干支以及星座、二十四节气、二十八星宿、常用节日等。
详细代码请下载附件。
部分代码片段如下
/// <summary> /// 传回农历y年闰月的天数 /// </summary> private static int leapDays(int y) { if (leapMonth(y) != 0) { if ((lunarInfo[y - 1900] & 0x10000) != 0) return 30; else return 29; } else return 0; } /// <summary> /// 传回农历y年闰哪个月 1-12 , 没闰传回 0 /// </summary> private static int leapMonth(int y) { return (int)(lunarInfo[y - 1900] & 0xf); } /// <summary> /// 传回农历y年m月的总天数 /// </summary> private static int monthDays(int y, int m) { if ((lunarInfo[y - 1900] & (0x10000 >> m)) == 0) return 29; else return 30; } /// <summary> /// 传回农历y年的生肖 /// </summary> private static String AnimalsYear(int y) { return Animals[(y - 4) % 12]; } /// <summary> /// 传入月日的offset 传回干支,0=甲子 /// </summary> private static String cyclicalm(int num) { return (Gan[num % 10] + Zhi[num % 12]); } /// <summary> /// 传入offset 传回干支, 0=甲子 /// </summary> private static String cyclical(int y) { int num = y - 1900 + 36; return (cyclicalm(num)); }
附件:源代码下载