您的位置:首页 > 其它

.NET 公历转农历

2009-09-07 09:46 204 查看
公历转农历得使用农历闰年闰月对照表

好在.NET已经预备了这个对照表,我们不用再去声明,可以直接使用



public string ChineseLunisolarDate(DateTime ADataTime)
{
    var clc = new System.Globalization.ChineseLunisolarCalendar();
    var year = clc.GetYear(ADataTime);
    var month = clc.GetMonth(ADataTime);
    var day = clc.GetDayOfMonth(ADataTime);
    var leapMonth = clc.GetLeapMonth(year);
    return string.Format("{0}{1} {2}年{3}{4}月{5}{6}"
        , "甲乙丙丁戊己庚辛壬癸"[(year - 4) % 10]
        , "子丑寅卯辰巳午未申酉戌亥"[(year - 4) % 12]
        , "鼠牛虎兔龙蛇马羊猴鸡狗猪"[(year - 4) % 12]
        , month == leapMonth ? "润" : ""
        , "无正二三四五六七八九十冬腊"[leapMonth > 0 && leapMonth <= month ? month - 1 : month]
        , "初十廿三"[day / 10]
        , "日一二三四五六七八九"[day % 10]
    );
}
private void Form1_Load(object sender, EventArgs e)
{
    dateTimePicker1_ValueChanged(dateTimePicker1, EventArgs.Empty);
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
    textBox1.Text = ChineseLunisolarDate(((DateTimePicker)sender).Value);
}
//System.Globalization.EastAsianLunisolarCalendar
//System.Globalization.TaiwanLunisolarCalendar
//System.Globalization.ThaiBuddhistCalendar
//System.Globalization.KoreanLunisolarCalendar
//System.Globalization.JapaneseLunisolarCalendar
//System.Globalization.HebrewCalendar
//System.Globalization.HijriCalendar
//System.Globalization.JapaneseCalendar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: