110,566
社区成员
发帖
与我相关
我的任务
分享
/**//// <summary>
/// 阴历转阳历
/// </summary>
/// <param name="year">阴历年</param>
/// <param name="month">阴历月</param>
/// <param name="day">阴历日</param>
/// <param name="IsLeapMonth">是否闰月</param>
public static DateTime GetDateFromLunarDate(int year, int month, int day, bool IsLeapMonth)
{
if (year < 1902 || year > 2100)
throw new Exception("只支持1902~2100期间的农历年");
if (month < 1 || month > 12)
throw new Exception("表示月份的数字必须在1~12之间");
if (day < 1 || day > calendar.GetDaysInMonth(year, month))
throw new Exception("农历日期输入有误");
int num1 = 0, num2 = 0;
int leapMonth = calendar.GetLeapMonth(year);
if (((leapMonth == month + 1) && IsLeapMonth) || (leapMonth > 0 && leapMonth <= month))
num2 = month;
else
num2 = month - 1;
while (num2 > 0)
{
num1 += calendar.GetDaysInMonth(year, num2--);
}
DateTime dt = GetLunarNewYearDate(year);
return dt.AddDays(num1 + day - 1);
}