0
天给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数:day、month 和 year,分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}。
var dayOfTheWeek = function(day, month, year) {
const h = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
if (month === 1 || month === 2) {
month += 12
year--
}
const c = year / 100 | 0, y = year % 100
const index = (y + (y / 4 | 0) + (c / 4 | 0) - c * 2 + (2.6 * (month + 1) | 0) + day - 1) % 7
return h[index < 0 ? index + 7 : index]
};
1970
年 12
月 31
日 周四0
天1970
年 12
月 31
日天数 + 4
)% 7
var dayOfTheWeek = function(day, month, year) {
const h = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
let days = (year - 1971) * 365 + ((year - 1 - 1968) / 4 | 0)
const months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) months[1] = 29
for (let i = 0; i < month - 1; i++) days += months[i]
days += day
return h[(days + 4) % 7]
};
new Date(Y-m-d).getDay()
返回指定日期是周几0
天var dayOfTheWeek = function(day, month, year) {
const h = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
return h[new Date(year + '-' + month + '-' + day).getDay()]
};