細恐至微,那些與閏年有關的bug

2021-10-02 03:56:30 字數 1677 閱讀 1720

公曆閏年判定遵循的規律為:四年一閏、百年不閏、400年再閏。

中國舊曆農曆每月的天數依照月虧而定,一年的時間以12個月為基準,平年比一回歸年少約11天。為了合上地球圍繞太陽執行週期即回歸年,每隔2到4年,增加乙個月,增加的這個月為閏月。那麼閏年應該怎麼計算?

閏年的計算方法:

1、普通年能被4整除且不能被100整除的為閏年。(如2023年就是閏年)

2、世紀年能被400整除的是閏年。(如2023年是閏年)

3、對於數值很大的年份,這年如果能整除3200,並且能整除172800則是閏年。如172023年是閏年,82023年不是閏年(因為雖然能整除3200,但不能整除172800)(此按一回歸年365天5h48』45.5』'計算)。

那麼用演算法來實現就是:

public

static

bool

isleap

(int yn)

細恐至微,居然有這樣乙個bug

2023年到2023年中是閏年的有以下這些年份:

2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年、2023年。

於是我開啟我的iphone手機看了一下2023年的日曆

1990在並不是閏年,2月份居然有29天

2023年有2月29日!看完後我整個感覺都不好了,開始懷疑人生。那一天的人們在幹嘛?

據說有人看到這裡,趕快看看自己的android手機(ps:確實沒毛病)

抽了根菸,情不自禁的我開啟了熟悉的windows電腦,心裡默念了一句"微軟**好』。

熟悉的微軟終於沒有讓我失望

這些bug與閏年有關:

1、在乙個日期值上加或減時間的**。尤其是加減1年或1個月的**

2、各種根據資料庫查詢結果生成的報表和圖示,月度和年度統計可能會少算1天

3、證書/密碼/金鑰/快取 等的過期時間,可能會比預期的早了一天,或者可能設定了乙個非法的過期時間

4、固定長度的陣列。例如,乙個長度為365的陣列遇到閏年可能就不夠了,可能會陣列越界。

5、ui元件,例如日曆、日期選擇元件,以及客戶端輸入校驗相關的**。

閏秒?除了閏年,還有乙個東西叫閏秒。

「閏秒」就是1分鐘有61秒, 「跳秒」都安排在6月30日,或是12月31日的最後一瞬間。

詳情參考:

時間 細思極恐

世間再無霍金,世間永留簡史 很多人對時間這個詞的感念沒有很深的了解,也沒有多少的感受在這其中。雖然時間非常重要,但是在青春這幾年大部分的都被我們浪費掉了。說時間可以吞噬一切是合乎情理的,隨著偉大的物理學家霍金的逝世,被時間所帶走,很多事情都是我們阻止不了了,但是不知道在未來可以不可以將時間扭轉,這一...

大道至簡至易,亦至精至微

心為君之官 嘗見先生送二三耆宿出門,退坐於中軒,若有憂色。德洪趨進請問。先生曰 頃與諸老論及此學,真圓鑿方枘 rui 此道坦如道路,世儒往往自加荒塞,終身陷荊棘之場而不悔,吾不知其何說也?錢德洪看見先生送兩三個老先生出門,回來坐在走廊上,面有憂色,就走進去問先生怎麼了?王陽明回答說 剛才跟這幾位老先...

細思極恐 ERP系統真的是全行業的公司都適配嗎?

在新零售 資訊化的影響下,企業採用並且實施erp系統 已經是大勢所趨了,為了避免自己的公司被時代out,很多企業也是盲目跟風就開始引進erp系統了。這個時候,經常都是事與願違,企業會發現預期目標與現實相差太遠。所以專助於服裝erp系統的訊商在這裡提醒大家一下,企業在上erp系統之前,最好能夠先問一下...