我想打印2014年至2050年之间的年份,其中日期为1,日期为0(星期日),月份为0(一月),这是代码,我做错了吗?
//Write a JavaScript program to find 1st January is being a Sunday between 2014 and 2050.
for (var year = 2014; year <=2050; year++){
var today = new Date();
var month = today.getMonth();
var date = today.getDate();
var year1 = today.getFullYear();
var day = today.getDay();
// console.log(year);
if (date === 1 && day === 0 && month == 0){
console.log(year);
} else{
alert("error");
}; break
};
答案 0 :(得分:1)
我已经审查了您的代码,这是对您的代码的分析
}; break
第一次迭代后退出循环,因此不是必需的。new Date();
一律返回今天的日期。new Date(year, 0, 1);
因此,这将为您提供循环中每年的1月1日。因此,您只需要使用以下If条件验证是否为星期日:
let date = new Date(year, 0, 1);
// checks if 1st Jan for the specific year is === 0 (sunday)
if ( date.getDay() === 0 ) {
这是最终的工作代码:
//Write a JavaScript program to find 1st January is being a Sunday between 2014 and 2050.
var year;
for (year = 2014; year <=2050; year++){
let date = new Date(year, 0, 1);
// checks if 1st Jan for the specific year is === 0 (sunday)
if ( date.getDay() === 0 ) {
console.log(year);
} else{
// console.log("error");
};
};
参考文献:
语法:new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
引用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
答案 1 :(得分:0)
您必须在每次迭代后创建一个new Date(year, 0, 1)
,然后检查是否为星期日。
new Date(year, 0, 1)
year
将提供变量
0
代表一月的索引
1
代表一月的1 st
var date;
for (var year = 2014; year <= 2050; year++) {
date = new Date(year, 0, 1);
if (date.getDay() === 0) console.log(year);
};
答案 2 :(得分:-1)
这可能有帮助。
for (var year = 2014; year <= 2050; year++) {
var d = new Date(year, 0, 1);
if (d.getDay() === 0){
console.log(year);
}
}