本章实现
阳历(公历)转阴历(农历),阴历(农历)转阳历(公历)
一、准备工作
需引入using System.Globalization;
二、代码实现
1.阳历转阴历
/// <summary>/// 阳历转阴历/// </summary>/// <param name="time">-08-31</param>/// <returns>-07-24</returns>public static string SolarToLunar(this string time){ChineseLunisolarCalendar cncld = new ChineseLunisolarCalendar();DateTime dt = DateTime.Parse(time);int year = cncld.GetYear(dt);int flag = cncld.GetLeapMonth(year);int month = flag > 0 ? cncld.GetMonth(dt) - 1 : cncld.GetMonth(dt);int day = cncld.GetDayOfMonth(dt);return $"{year}-{(month.ToString().Length == 1 ? "0" + month : month + "")}-{(day.ToString().Length == 1 ? "0" + day : day + "")}";}
2.阴历转阳历
/// <summary>/// 阴历转阳历/// </summary>/// <param name="time">-07-24</param>/// <returns>-08-31</returns>public static string LunarToSolar(this string time){ChineseLunisolarCalendar cncld = new ChineseLunisolarCalendar();int year = Convert.ToInt32(time.Split('-')[0]);int month = Convert.ToInt32(time.Split('-')[1]);int day = Convert.ToInt32(time.Split('-')[2]);int flag = cncld.GetLeapMonth(year);DateTime dtnl = cncld.ToDateTime(year, month, day, 0, 0, 0, 0);dtnl = flag > 0 ? dtnl.AddMonths(1) : dtnl;return dtnl.ToString("yyyy-MM-dd");}
三、程序调用
// 阳历转阴历string lunarStr = "-08-31".SolarToLunar(); // 输出 -07-24// 阴历转阴历string solarStr = lunarStr.LunarToSolar(); // 输出 -08-31
四、结束语
本次的分享结束,后续不定时更新,再见!!!