[C#]西元年轉民國年 別用.AddYears(-1911)
以前轉成民國年 都常常會使用 .AddYears(-1911)
這種偷懶的做法,不過今天用2012/2/29寫範例的時候,轉出來 居然是101/2/28
根據我的推理,是因為西元101年 的2月 只有28 天
所以在此我把年份改成用減的,這樣 只減年份,月日不動,這樣就不會算錯了
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string strdate = "2012/2/29";
DateTime cdate = DateTime.Parse(strdate);
Console.WriteLine("西元年:"+cdate.ToString("yyyy/MM/dd"));
Console.WriteLine("民國年:"+Convert.ToInt16(cdate.AddYears(-1911).Year) + cdate.ToString("/MM/dd"));
cdate = cdate.AddYears(-1911);//用我你就會算錯
Console.WriteLine("民國年:" + cdate.ToString("yyy/MM/dd"));//101/2/28
Console.Read();
}
}
}
如有錯誤 歡迎指正