出來混總是要還債的

只是沒想到這麼快就遇到程式在日期轉換,閏年掛掉的問題

在這裡做個簡單的紀錄

接獲業務有位客人下單2020/02/29出發的訂單

在成立訂單後,轉往付款頁面就掛掉了

看了一下SQL 資料格式正確 2020/2/29 上午 12:00:00

嗯? 只有這張單異常,其他客人下單都沒問題

到底發生了什麼事….

後來檢查,程式上邏輯出現了小問題

1
2
3
4
5
6
7
8
string A = DateTime.Parse(B).ToString("MM/dd");
// ....商業省略....
A = DateTime.Parse(A).ToString("MM/dd");
// ....商業省略....

乍看之下在正常執行時,並不會發生錯誤

但是當遇到閏年的時候,只要沒有帶入年份 DateTime.Parse(“2/29”),會被解讀成字串

導致程式錯誤(當初一定是撞到牆才沒帶入年份)

一般非閏年情況 DateTime.Parse(“1/1”)是不會有問題產生的

結論: Parse一定要帶入年份