由.Net类库提供的农历计算(C#农历)                 2007-11-21 12:47:00

            原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhoufoxcn.blog.51cto.com/792419/163928            

中国毕竟是一个文明大国,有一些自己悠久的历史文化传统,农历就是其中之一,它对指导农业生产有着极为重要的意义,还有春节等一些传节日并没有因为使用公 元纪年而消失,在程序开发种我们也经常会遇到一些需要在公历与农历之间进行 转换,在1.1之前大家都是采用了第三方的算法(我也采用过),现 在在.net2.0种已经提供了这种功能了。下面我就以几个简单的例子展示它的用法。

using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
/**  
* 说明:在东亚各国,除了通用的公元纪年之外,还有各自以前使用的阴历纪年法,在.net2.0种增加了针对东亚各国的日历类EastAsianLunisolarCalendar,
 * 它是一个抽象类,有各种针对不同国家的的子类,其中ChineseLunisolarCalendar就是针对中国的日历类,它提公元纪年与中国传统农历纪年之间的相互转换  
* 利用它可以计算天干地支等有关农历的信息,本程序就是来简单展示这个类的用法。它能计算的农历范围从公历1901-2-19至2101-1-28。
 * 作者:周公 
 * 日期:2007-11-21
*/
namespace ChineseCalendar
{     
     class Program     
  {        
       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()       
  {             
         Console.WriteLine("今年的阴历时间:{0}年{1}月{2}日。", chineseDate.GetYear(DateTime.Now),chineseDate.GetMonth(DateTime.Now),chineseDate.GetDayOfMonth(DateTime.Now));           
         Console.WriteLine("今年阴历天数:{0},今年{1}闰年", chineseDate.GetDaysInYear(DateTime.Now.Year),(chineseDate.IsLeapYear(DateTime.Now.Year)==true)?"是":"不是");             
         Console.WriteLine("今年农历每月的天数:");             
         for (int i = 1; i <= chineseDate.GetMonthsInYear(DateTime.Now.Year); i++)            
      {               
           Console.Write("{0,-5}",chineseDate.GetDaysInMonth(DateTime.Now.Year,i));           
      }         
  }    
 }
}

运行效果:

本文出自 “周公(周金桥)的专栏” 博客,请务必保留此出处http://zhoufoxcn.blog.51cto.com/792419/163928

由.Net类库提供的农历计算的更多相关文章

  1. 由.Net类库提供的农历计算(C#农历)-获取当前日期的农历日期

    ; i <= chineseDate.GetMonthsInYear(DateTime.Now.Year); i++)            {                Console.W ...

  2. 开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

    原文:[原创]开源Math.NET基础数学类库使用(17)C#计算矩阵条件数                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...

  3. 开源Math.NET基础数学类库使用(16)C#计算矩阵秩

    原文:[原创]开源Math.NET基础数学类库使用(16)C#计算矩阵秩                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4 ...

  4. 开源Math.NET基础数学类库使用(15)C#计算矩阵行列式

    原文:[原创]开源Math.NET基础数学类库使用(15)C#计算矩阵行列式                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...

  5. 【原创】开源Math.NET基础数学类库使用(11)C#计算相关系数

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  6. 【原创】开源Math.NET基础数学类库使用(15)C#计算矩阵行列式

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月 ...

  7. 【原创】开源Math.NET基础数学类库使用(16)C#计算矩阵秩

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月 ...

  8. 【原创】开源Math.NET基础数学类库使用(17)C#计算矩阵条件数

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 上个月 ...

  9. 开源Math.NET基础数学类库使用(11)C#计算相关系数

    阅读目录 前言 1.Math.NET计算相关系数的类 2.Correlation的实现 3.使用案例 4.资源                本博客所有文章分类的总目录:[总目录]本博客博文总目录-实 ...

随机推荐

  1. 【LeetCode】205. Isomorphic Strings

    题目: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the c ...

  2. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  3. 一款好用的绘图软件gnuplot

    漂亮的图片在一篇报告中是必不可少的.这里推荐一款绘图软件Gnuplot. Gnuplot是一种免费分发的绘图工具,可以移植到各种主流平台,无论是在Linux还是在Windows都易于安装使用.最新的版 ...

  4. webpack的Hot Module Replacement运行机制

    使用webpack打包,难免会使用Hot Module Replacement功能,该功能能够实现修改.添加或删除前端页面中的模块代码,而且是在页面不刷新的前提下.它究竟是怎么运作的呢?本文主要从调试 ...

  5. bzoj1041题解

    求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数.r<=2000 000 000  这道题刚看时,就明白暴力不能解决一切.要是r^2<=20亿,还可以sqrt循环, ...

  6. SQL执行过程中的性能负载点

    一.SQL执行过程 1.用户连接数据库,执行SQL语句: 2.先在内存进行内存读,找到了所需数据就直接交给用户工作空间: 3.内存读失败,也就说在内存中没找到支持SQL所需数据,就进行物理读,也就是到 ...

  7. 同一个tomcat多个项目共享session,一个tomcat两个项目共享sessionId

    同一个tomcat多个项目共享session,一个tomcat两个项目共享sessionId >>>>>>>>>>>>>& ...

  8. (转发)RequestDispatcher的include()方法和forward()方法的区别

    forward(): 该方法用于将请求从一个Servlet传递给服务器上的另外的Servlet.JSP页面或者是HTML文件. 在Servlet中,可以对请求做一个初步的处理,然后调用这个方法,将请求 ...

  9. Java项目集成SAP BO

    SAP BO报表查看需要登录SAP BO系统,为了方便公司希望将BO报表集成到OA系统中,所以参考网上资料加上与SAP BO的顾问咨询整理出一套通过Java来集成SAP BO的功能. SAPBO中的报 ...

  10. file_get_contents()实现get+post请求

    先看file_get_contents()的定义: string file_get_contents ( string $filename [, bool $use_include_path = fa ...