[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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章