2020年8月15日 星期六

[C#] 西元年轉換為民國年

[C#] 西元年轉換為民國年

[C#] 西元年轉換為民國年

簡介

由於在維護舊程式,發現還有使用西元年減掉1911來取得民國年,這裡稍微紀錄一下修改方式。

民國年轉換/農曆轉換

  • 轉換民國年可以使用TaiwanCalendar,而轉換為農曆則可使用TaiwanLunisolarCalendar
    using System;
    using System.Globalization;
    
    public class Program
    {
        public static void Main()
        {
            DateTime now = DateTime.Now;
            TaiwanCalendar tc = new TaiwanCalendar();
            TaiwanLunisolarCalendar tlc = new TaiwanLunisolarCalendar();
            Console.WriteLine($"西元: {now.Year}/{now.Month}/{now.Day}");
            Console.WriteLine($"民國: {tc.GetYear(now)}/{tc.GetMonth(now)}/{tc.GetDayOfMonth(now)}");
            Console.WriteLine($"農曆: {tlc.GetYear(now)}/{tlc.GetMonth(now)}/{tlc.GetDayOfMonth(now)}");
    
            CultureInfo culture = new CultureInfo("zh-TW");
            culture.DateTimeFormat.Calendar = new TaiwanCalendar();
    
            // 另一個西元年轉換民國年方式
            Console.WriteLine(now.ToString("yyy/MM/dd", culture));
    
            // 民國年轉換西元年
            if (DateTime.TryParseExact("01100410", "yyyyMMdd", culture, DateTimeStyles.None, out DateTime dt))
            {
                Console.WriteLine($"{dt:yyyy/MM/dd}");
            }
    
        }
    }
    
    // Output:
    // 西元: 2020/8/15
    // 民國: 109/8/15
    // 農曆: 109/7/26
    // 109/7/26
    // 2012/04/10
    


參考資料

如有錯誤或建議,歡迎留言指教,謝謝!!

(相關內容如有侵犯隱私或著作權,請協助通知刪除,感謝)

沒有留言:

張貼留言