2010年6月24日

[DOTNET] 利用 System.Globalization 提供的各種曆法類別取得特別的日期

今天來介紹各種 DotNET 提供的客製化曆法吧

I. 客製化曆法簡介

首先來看一下 System.Globalization namespace
各種曆法類別的命名為 xxxCalendar

比方講 PersianCalendar 為波斯曆
另外還有 TaiwanCalendarJapaneseCalendarKoreanCalendar …等

使用方法很簡單,大多是建立 xxxCalendar 類別實體之後
再叫用 .GetYear.GetMonth.GetDayOfMonth 方法
以下就用台灣曆和台灣農曆來簡單示範一下用法

II. 實戰

首先,先建立一個要轉換曆法的日期
建立 TaiwanCalendar 類別
由於台灣曆和西元曆的月日相同,這邊只顯示相異的民國年
TC01 再建立 TaiwanLunisolarCalendar 來取得農曆的日期
看一下日期的轉換結果
TC02
民國年當然可以確定是正確的
但農曆呢? 坎尼找到了這個 網站
2010/04/24 在農曆中的確是 3/11,得證!
TC03 
TaiwanLunisolarCalendar 還可以取得天干和地支
有興趣的讀者可以試試

III. 小結

若是要在自己的系統中顯示各地不同的曆法
建議可以先到 System.Globalization 裡找找
或許會有意外的發現

也有提供泰國的佛教曆,給有可能用到的人作參考

沒有留言:

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D