不是我寫的,但很有意思。Azure底層fabric有過這麽一段code,目的是檢查一張證書的有效期是否在一年以內。
那麽要先獲得一年後的日期,本來用DateTime.Today().Add(new TimeSpan(365,0,0,0))就可以了(編輯:經提醒,AddYear(1)是最簡單而且更精確的)。寫程式碼的哥們腦洞了下寫成new DateTime(today.Year+1,today.Month,today.Day)。
經過各種測試執行一直都沒問題。直到2012年2月29日,ArgumentOutOfRangeException。
後果是整個Azure掛了十多個小時吧。
----------------------------------------------------------
編輯:關於這次outage,Azure官方的說明在這裏:
Summary of Windows Azure Service Disruption on Feb 29th, 2012。有興趣的可以看下,