2024年4月2日 星期二

民國年轉換

 民國年轉換


使用DotNet TaiwanCalendar類別轉換民國年,只要簡單的將西元年日期做為參數傳入,即可取得民國年的相關數值,例如,年/月/日…,如下:


System.Globalization.TaiwanCalendar tc = new System.Globalization.TaiwanCalendar();


DateTime d = DateTime.Now;


string salesDate = String.Format(“民國{0}年{1}月{2}日”, tc.GetYear(d), tc.GetMonth(d), tc.GetDayOfMonth(d));


可惜的是,ToString()沒有支援Format參數指定輸出格式,不然就更加方便了,省掉自行組字串的步驟。另外要特別注意的是,指定小於西元1912/01/01的日期,會拋出超出日期範圍的例外,因為年份沒有負數的表示法。


如果不想用上述的方式,在每個輸出的地方都寫日期轉換的程式碼,有沒有更簡單的方式?


有的,可以在程式開始執行時,指定執行序的文化與曆法:


Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-TW");

Thread.CurrentThread.CurrentCulture.DateTimeFormat.Calendar = new TaiwanCalendar();


當使用DateTime.Now.ToString()時,得到的就是民國年日期,而且是整個系統範圍皆適用。


若需要用到台灣陰陽曆(農民曆)處理,也可使用TaiwanLunisolarCalendar類別來做轉換,使用方式相同。

沒有留言:

張貼留言