題目連結:
題目意譯:
給定一日期 date,回傳該日期為星期幾。
輸入給定為三個整數,依序代表著天、月以及年。
回傳答案其為下列值之一:{"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}。
限制:
給定的日期保證為 1971 到 2100 之間的合法日期。
範例測資:
範例 1:
輸入: day = 31, month = 8, year = 2019
輸出: "Saturday"
範例 2:
輸入: day = 18, month = 7, year = 1999
輸出: "Sunday"
範例 3:
輸入: day = 15, month = 8, year = 1993
輸出: "Sunday"
解題思維:
參見
這題的做法,不過該題只求 2011 年內的日期,而本題的年份可以從 1971 一路到 2100。
因此我們可以以任一日期為基準(例如 1971 / 1 / 1 為星期五),然後先計算給定的年份之值與基準年之間夾了多少年(基準年要算進去,但目標年分不能算),加上中間有的閏年(每個閏年多算 1 天),之後就是計算該日期於該年又過了多少天。
最後便可以從經過的天數推出給定的日期為星期幾。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。