首页 / 软件开发 / .NET编程技术 / ChineseLunisolarCalendar 农历日期
ChineseLunisolarCalendar 农历日期2011-03-31 博客园 steven hu在.net2.0 的版本中的 System.Globalization.ChineseLunisolarCalendar 是针对中 国的日历类,公历与中国传统农历纪年之间的相互转换,利用它可以计算天干地支等有关 农历的信息。使用static ChineseLunisolarCalendar cCalendar = new ChineseLunisolarCalendar ();cCalendar.MaxSupportedDateTime 返回支持的最大日期,即2101-1-28cCalendar.MinSupportedDateTime 返回支持的最小日期,即1901-2-19下面我们来实现公历转农历。/// <summary>
/// 根据公历获取农历日期
/// </summary>
/// <param name="datetime">公历日期</param>
/// <returns></returns>
public static string GetChineseDateTime(DateTime datetime)
{
int lyear = cCalendar.GetYear(datetime);
int lmonth = cCalendar.GetMonth(datetime);
int lday = cCalendar.GetDayOfMonth(datetime);
//获取闰月, 0 则表示没有闰月
int leapMonth = cCalendar.GetLeapMonth(lyear);
bool isleap = false;
if (leapMonth > 0)
{
if (leapMonth == lmonth)
{
//闰月
isleap = true;
lmonth--;
}
else if (lmonth > leapMonth)
{
lmonth--;
}
}
return string.Concat(GetLunisolarYear(lyear), "年", isleap ? " 闰" : string.Empty, GetLunisolarMonth(lmonth), "月", GetLunisolarDay (lday));
}
测试的结果:传入日期:2010-3-4返回农历:庚寅[虎]年正月十九可以满足简单的需求啦。