• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP.NET显示农历时间改进版

    本文实例讲述了ASP.NET显示农历时间的方法,是前面一篇文章源码的改进版。分享给大家供大家参考。具体如下:

    前面有一篇取农历时间https://www.jb51.net/article/57481.htm,不过没有进行封装使用起来需要手动修改。本次进行简单封装一下,可以直接进行调用。

    代码如下:

    取农历时间的类

    复制代码 代码如下:
    public class CountryDate 

         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[] { "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二" }; 
     
         /// 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]; 
         } 
    }

    需要的using

    复制代码 代码如下:
    using System; 
    using System.Collections.Generic; 
    using System.Web; 
    using System.Text; 
    using System.Globalization;

    调用:
    复制代码 代码如下:
    CountryDate cd = new CountryDate(); 
    string ChineseTimeNow = cd.GetChineseDate(DateTime.Now);//农历日期 
    string ForignTimeNow = DateTime.Now.GetDateTimeFormats('D')[0].ToString();//公历日期

    下面有一个测试的效果:

    前台代码:

    复制代码 代码如下:
    %@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestCountryDate._Default" %> 
     
    !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
     
    html xmlns="http://www.w3.org/1999/xhtml"> 
    head runat="server"> 
        title>/title> 
    /head> 
    body> 
        form id="form1" runat="server"> 
        div> 
        table> 
         tr> 
          td>asp:Label ID="Label1" runat="server" Text="农历时间"/>/td> 
          td>asp:Label ID="lblCountryDate" runat="server"/>/td> 
         /tr> 
         tr> 
          td>asp:Label ID="Label2" runat="server" Text="公历时间"/>/td> 
          td>asp:Label ID="lblForignDate" runat="server"/>/td> 
         /tr> 
        /table> 
        asp:Button ID="buttton1" runat="server" Text="显示时间" OnClick="Button1_Click" /> 
        /div> 
        /form> 
    /body> 
    /html>

    后台代码:

    复制代码 代码如下:
    public partial class _Default : System.Web.UI.Page 

        protected void Page_Load(object sender, EventArgs e) 
        { 
     
        } 
     
        protected void Button1_Click(object sender, EventArgs e) 
        { 
            CountryDate cd = new CountryDate(); 
            string ChineseTimeNow = cd.GetChineseDate(DateTime.Now);//农历日期 
            string ForignTimeNow = DateTime.Now.GetDateTimeFormats('D')[0].ToString();//公历日期 
     
            lblCountryDate.Text = ChineseTimeNow; 
            lblForignDate.Text = ForignTimeNow; 
        } 
    }

    运行效果如下图所示:

    主要取时间就是这个CountryDate类,调用取时间即可。

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

    您可能感兴趣的文章:
    • asp.net 实现动态显示当前时间(不用javascript不考虑开销)
    • asp.net中页面显示当前系统时间附图
    • ASP.NET显示农历时间的方法
    • ASP.NET网站实时显示时间的方法
    • asp.net显示页面执行时间
    • asp.net转出json格式客户端显示时间
    • asp.net获取系统当前时间的方法详解
    上一篇:ASP.NET显示农历时间的方法
    下一篇:ASP.NET MVC小结之基础篇(一)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP.NET显示农历时间改进版 ASP.NET,显示,农历,时间,改进,