/// <summary> /// 农历日历 /// </summary> private static ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar(); /// <summary> /// 中文数字 /// </summary> private static string ChineseNumber = "〇一二三四五六七八九"; /// <summary> /// 甲子 /// </summary> public const string CelestialStem = "甲乙丙丁戊己庚辛壬癸"; /// <summary> /// 阴历年干支 /// </summary> public const string TerrestrialBranch = "子丑寅卯辰巳午未申酉戌亥"; /// <summary> /// 属相 /// </summary> public const string ShuXiang = "鼠牛虎兔龙蛇马羊猴鸡狗猪"; /// <summary> /// 甲子记年法 /// </summary> /// <param name="time"></param> /// <returns></returns> public static string GetStemBranch(DateTime time) { string stemBranch = string.Empty; int sexagenaryYear = calendar.GetSexagenaryYear(time);//与指定日期对应的甲子(60 年)循环中的年 if (sexagenaryYear % 10 == 0 && sexagenaryYear % 12 == 0) { stemBranch = CelestialStem.Substring(sexagenaryYear % 10+9, 1) + TerrestrialBranch.Substring(sexagenaryYear % 12 +11, 1); } else if (sexagenaryYear % 10 != 0 && sexagenaryYear % 12 == 0) { stemBranch = CelestialStem.Substring(sexagenaryYear % 10 - 1, 1) + TerrestrialBranch.Substring(sexagenaryYear % 12 +11, 1); } else if (sexagenaryYear % 10 == 0 && sexagenaryYear % 12 != 0) { stemBranch = CelestialStem.Substring(sexagenaryYear % 10+9, 1) + TerrestrialBranch.Substring(sexagenaryYear % 12 -1, 1); } else { stemBranch = CelestialStem.Substring(sexagenaryYear % 10 - 1, 1) + TerrestrialBranch.Substring(sexagenaryYear % 12 - 1, 1); } return stemBranch; } /// <summary> /// 生肖 /// </summary> /// <param name="time"></param> /// <returns></returns> public static string GetSX(DateTime time) { string SX = string.Empty; int sexagenaryYear = calendar.GetSexagenaryYear(time);//与指定日期对应的甲子(60 年)循环中的年 if (sexagenaryYear % 12 == 0) { SX = ShuXiang.Substring(sexagenaryYear % 12 + 11, 1); } else { SX = ShuXiang.Substring(sexagenaryYear % 12 - 1, 1); } return SX; } /// <summary> /// /// </summary> public GZForm() { InitializeComponent(); } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GZForm_Load(object sender, EventArgs e) { this.label1.Text = "农历今天是:" + GetStemBranch(DateTime.Now) + "年"; this.label2.Text = "农历今生肖是:" + GetSX(DateTime.Now); } /// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { this.label1.Text = "农历是:" + GetStemBranch(this.dateTimePicker1.Value) + "年"; this.label2.Text = "生肖是:" + GetSX(this.dateTimePicker1.Value); } }
时间: 2024-08-20 12:00:35