欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET显示农历时间的方法

程序员文章站 2024-02-23 13:12:52
本文实例讲述了asp.net显示农历时间的方法。分享给大家供大家参考。具体实现方法如下: cs部分代码如下: 复制代码 代码如下:public string chine...

本文实例讲述了asp.net显示农历时间的方法。分享给大家供大家参考。具体实现方法如下:

cs部分代码如下:

复制代码 代码如下:
public string chinesetimenow = ""; 
public string forigntimenow = ""; 
private static chineselunisolarcalendar calendar = new chineselunisolarcalendar(); 
private static string chinesenumber = "〇一二三四五六七八九"; 
public const string celestialstem = "甲乙丙丁戊己庚辛壬癸"; 
public const string terrestrialbranch = "子丑寅卯辰巳午未申酉戌亥"; 
public static readonly string[] chinesedayname = new string[] { 
        "初一","初二","初三","初四","初五","初六","初七","初八","初九","初十", 
        "十一","十二","十三","十四","十五","十六","十七","十八","十九","二十", 
        "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"}; 
public static readonly string[] chinesemonthname = new string[] { "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二" }; 

override protected void page_load(object sender, eventargs e) 

        base.page_load(sender, e); 
        username = session["admin"].tostring(); 
        chinesetimenow=getchinesedate(datetime.now); 
        forigntimenow = datetime.now.getdatetimeformats('d')[0].tostring(); 

/// <summary> 
/// 获取一个公历日期对应的完整的农历日期 
/// </summary> 
/// <param name="time">一个公历日期</param> 
/// <returns>农历日期</returns> 
public string getchinesedate(datetime time) 

        string stry = getyear(time); 
        string strm = getmonth(time); 
        string strd = getday(time); 
        string strsb = getstembranch(time); 
        string strdate = stry + "(" + strsb + ")年 " + strm + "月 " + strd; 
        return strdate; 

/// <summary> 
/// 获取一个公历日期的农历干支纪年 
/// </summary> 
/// <param name="time">一个公历日期</param> 
/// <returns>农历干支纪年</returns> 
public string getstembranch(datetime time) 

        int sexagenaryyear = calendar.getsexagenaryyear(time); 
        string stembranch = celestialstem.substring(sexagenaryyear % 10 - 1, 1) + terrestrialbranch.substring(sexagenaryyear % 12 - 1, 1); 
        return stembranch; 

/// <summary> 
/// 获取一个公历日期的农历年份 
/// </summary> 
/// <param name="time">一个公历日期</param> 
/// <returns>农历年份</returns> 
public string getyear(datetime time) 

        stringbuilder sb = new stringbuilder(); 
        int year = calendar.getyear(time); 
        int d; 
        do 
        { 
            d = year % 10; 
            sb.insert(0, chinesenumber[d]); 
            year = year / 10; 
        } while (year > 0); 
        return sb.tostring(); 

/// <summary> 
/// 获取一个公历日期的农历月份 
/// </summary> 
/// <param name="time">一个公历日期</param> 
/// <returns>农历月份</returns> 
public string getmonth(datetime time) 

        int month = calendar.getmonth(time); 
        int year = calendar.getyear(time); 
        int leap = 0; 
 
        //正月不可能闰月 
        for (int i = 3; i <= month; i++) 
        { 
            if (calendar.isleapmonth(year, i)) 
            { 
                leap = i; 
                break; //一年中最多有一个闰月 
            } 
 
        } 
        if (leap > 0) month--; 
        return (leap == month + 1 ? "闰" : "") + chinesemonthname[month - 1]; 

/// <summary> 
/// 获取一个公历日期的农历日 
/// </summary> 
/// <param name="time">一个公历日期</param> 
/// <returns>农历日</returns> 
public string getday(datetime time) 

        return chinesedayname[calendar.getdayofmonth(time) - 1]; 
}

前台部分代码如下:

复制代码 代码如下:
<table style=""> 
 <tr valign="bottom"> 
<td valign="bottom"> <%=forigntimenow%><br /></td>> 
   </tr> 
   <tr valign="bottom"> 
  <td valign="bottom"> <%=chinesetimenow %></td> 
 </tr> 
 </table>

 希望本文所述对大家的asp.net程序设计有所帮助。