• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C#实现计算今天是农历几号的代码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

代码说明:

1.说明:在东亚各国,除了通用的公元纪年之外,还有各自以前使用的阴历纪年法,在.net2.0种增加了针对东亚各国的日历类EastAsianLunisolarCalendar,

2.它是一个抽象类,有各种针对不同国家的的子类,其中ChineseLunisolarCalendar就是针对中国的日历类,它提公元纪年与中国传统农历纪年之间的相互转换,并能计算今天是农历几月几日星期几

3.利用它可以计算天干地支等有关农历的信息,本程序就是来简单展示这个类的用法。它能计算的农历范围从公历1901-2-19至2101-1-28。

using System;   
using System.Collections.Generic;   
using System.Text;   
using System.Globalization;  
namespace ChineseCalendar   
{   
    public class Calendar   
    {   
        private static ChineseLunisolarCalendar chineseDate = new ChineseLunisolarCalendar();   
        static void Main(string[] args)   
        {   
            //ChineseLunisolarCalendar chineseDate = new ChineseLunisolarCalendar();   
            ShowYearInfo();   
            ShowCurrentYearInfo();   
            Console.ReadLine();   
        }   
        /// <summary>   
        /// 展示阴历年份信息   
        /// </summary>   
        public static void ShowYearInfo()   
        {   
            for (int i = chineseDate.MinSupportedDateTime.Year; i < chineseDate.MaxSupportedDateTime.Year; i++)   
            {   
                Console.WriteLine("年份:{0},月份总数:{1},总天数:{2},干支序号:{3}", i, chineseDate.GetMonthsInYear(i),chineseDate.GetDaysInYear(i)   
                                  ,chineseDate.GetSexagenaryYear(new DateTime(i,3,1)));   
            }   
        }   
        /// <summary>   
        /// 展示当前年份信息   
        /// </summary>   
        public static void ShowCurrentYearInfo()   
        {   
            int lYear=chineseDate.GetYear(DateTime.Now);   
            int lMonth=chineseDate.GetMonth(DateTime.Now);   
            int lDay=chineseDate.GetDayOfMonth(DateTime.Now);                 
            int leapMonth = chineseDate.GetLeapMonth(lYear);//获取第几个月是闰月,等于0表示本年无闰月   
               
            //如果今年有闰月   
            if (leapMonth > 0)   
            {   
                //闰月数等于当前月份   
                if (lMonth == leapMonth)   
                {   
                    Console.WriteLine("今年的阴历日期:{0}年闰{1}月{2}日。", lYear, lMonth - 1, lDay);   
                }   
                else if (lMonth > leapMonth)//   
                {   
                    Console.WriteLine("今年的阴历日期:{0}年{1}月{2}日。", lYear, lMonth - 1, lDay);   
                }   
                else  
                {   
                    Console.WriteLine("今年的阴历日期:{0}年{1}月{2}日。", lYear, lMonth, lDay);   
                }   
                   
            }   
            else  
            {   
                Console.WriteLine("今年的阴历日期:{0}年{1}月{2}日。", lYear, lMonth, lDay);   
            }   
            Console.WriteLine("今天的公历日期:" + DateTime.Now.ToString("yyyy-MM-dd"));   
            Console.WriteLine("今年阴历天数:{0},今年{1}闰年", chineseDate.GetDaysInYear(DateTime.Now.Year),(chineseDate.IsLeapYear(DateTime.Now.Year)==true)?"是":"不是");   
               
            Console.WriteLine("今年农历每月的天数:");//注意:如果有13个数字表示当年有闰月   
            for (int i = 1; i <= chineseDate.GetMonthsInYear(DateTime.Now.Year); i++)   
            {   
                Console.Write("{0,-5}",chineseDate.GetDaysInMonth(DateTime.Now.Year,i));   
            }   
        }   
    }   


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#基本数据类型发布时间:2022-07-13
下一篇:
C#分布类发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap