[2010-09-20].NET 2.0 C#下利用ChineseLunisolarCalendar类农历的实现

题外话:第一次在CSDN上发日志文章,因为一直在用的QQ空间和163博客都不支持代码段的插入,毕竟大家的定位也不同,QQ和163定位于门户性社区,所以以后还是尽量把技术性的东西往技术性社区放好了。

 

好了,言归正传,农历的实现一般都是自己写代码计算相关的时差,.NET 2.0则提供了一个农历的类库(看来微软终于发现中国的存在了)。这个类库在System.Globalization命名空间下,名称是ChineseLunisolarCalendar,这个类引用MSDN上的原文解释为:

将时间分成多个部分来表示,如分成年、月和日。年按农历计算,而日和月按阴阳历计算。

呵呵,“日和月按阴阳历计算”,不知道是什么意思,反正最终出来的计算结果是对的,我也没有深究。

 

ChineseLunisolarCalendar类提供了方法直接把当前日期换算成农历。

如常用的:

GetYear():返回了一个1到60之间的整数,至于为什么是1到60,有兴趣的可以自行了解一下农历的计算原理或者研究一下命理测算(估计研究完这个你就不用程序展示农历给你看,自己能心算了。)

GetMonth():返回一个 1 到 13 之间的整数,同理的研究一下农历计算原理或跟算命的了解一下,就知道为什么农历会有13个月。

GetDayOfMonth():返回一个从 1 到 31 的整数。

还有一些与Leap相关的方法和属性是与闰月相关的,也会经常用到。

下面看一下实际代码:

 

这个类并没有整理过,只是要用什么才随便写个方法,所以代码比较乱。

 

利用这个类,做了一个农历月历,效果如下:

 

 

 

月历上可以看出,没有传统节日,以后会加上。

另外也提前祝大家中秋节快乐,合家团圆!

 

2010-12-03

+个下载地址:

http://download.csdn.net/source/2880958

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值