收到一封郵件,內容如下
其實,有 5個星期五, 5個星期六, 5個星期日的月份很多,只要滿足“該月第一天爲星期五,且該月共 31天”這個條件即可(因爲前三天已經有了一個星期五,一個星期六,一個星期日,剩下的四個星期五,六,日被平均分配到剩下的 31-3=28天(正好 4周)內)
僅僅就新世紀的前二十年內而言,這樣的月份都很多:
2002/3/1
2002/11/1
...
2019/11/1
2020/5/1
可以用以下 7行 Groovy代碼跑出來上述結果
(2000..2020).each{y-> (1..12).each{m-> def d = Date.parse('yyyy/M/d', "$y/$m/1") if(5 == d.day && m ==~ /1|3|5|7|8|10|11/) println "$y/$m/1" } }
至於“ 823年後才能再次出現”一說,純屬瞎掰(不過 823年後的 2833年,確實存在這麼一天,就是 2833/7/1)
把上述代碼的第一行中的 2000..2020替換爲 2010..2833,可得如下結果( 2010到 2833這 823年中,有很多很多這樣的月份。。。)
2010/1/1
2010/10/1
…
2832/10/1
2833/7/1