[小菜一碟] 使用 C# 將民國日期的字串轉換成西元日期

四年一次會出現的不是只有總統大選,還有 2 月 29 日的問題,程式如果寫得不夠久大概也不會遇到,像今年就有可能會收到像是「113/02/29」、「113年2月29日」這樣的日期字串,在 C# 中如果直接先轉成西元日期的 113/02/29,再加上 1911 年,像這樣:

DateTime.ParseExact("113/02/29", "yyy/MM/dd", null).AddYears(1911);

那我們的程式應該已經爆了,因為西元 113 年沒有 2 月 29 日,關於閏年的問題,在 C# 我們有更優雅的做法。

...繼續閱讀 »