[C#][VB.NET]西元轉民國

如何將今天日期顯示於 TextBox 中,且日期格式從西元轉換為民國 ( 2009 轉換為 98 )

 

1. 問題描述

使用 DateTime.Now 取得今天的日期時間,但取得的日期格式為西元年,

如何將今天日期顯示於 TextBox 中,且日期格式從西元轉換為民國 ( 2009 轉換為 98 )。

 

2. 方法

可以使用以下兩種方式

2.1 西元轉換民國為 -1911 年,因此可參考以下程式碼作轉換

C#


            textBox1.Text = Convert.ToInt16(DateTime.Now.AddYears(-1911).Year) + DateTime.Now.ToString("/MM/dd");

 

VB.NET


TextBox1.Text = Convert.ToInt16(DateTime.Now.AddYears(-1911).Year) & DateTime.Now.ToString("/MM/dd")

 

執行結果

image

 

2.2 透過 TaiwanCalendar 類別

在命名空間 System.Globalization 中,有 TaiwanCalendar 類別 : 表示台灣使用的曆法。

可使用以下程式碼達成西元轉民國

C#


            DateTime dtNow = DateTime.Now;
            System.Globalization.TaiwanCalendar twC = new System.Globalization.TaiwanCalendar();
            this.textBox1.Text = twC.GetYear(dtNow) + dtNow.ToString("/MM/dd");

 

VB.NET


        Dim dtNow = DateTime.Now
        Dim twC = New System.Globalization.TaiwanCalendar()
        TextBox1.Text = twC.GetYear(dtNow).ToString + dtNow.ToString("/MM/dd")

 

執行結果

image

 

3. 參考

日期格式西元年轉為中文年(2009-->98)