根据用户输入的年月日判断是这一年当中的第几天,用js的写法。


const readline = require('readline-sync');
let year = 0, month = 0, day = 0;//day2是输入的天数,day是计算每个月应有的天数,i是用来计算从month到month-1月的天数的一个变量
//获取正确的年
console.log('请输入一个年份:')
year = readline.question() - 0;
if (isNaN(year) || (year < 1900 || year > 2020)) {
while (true) {
console.log('请重新输入一个年份在(1900-2020年之间)');
year = readline.question() - 0;
if (!isNaN(year) && (year >= 1900 && year <= 2020)) {
break;
}
}
}

//判断输入正确的月份
console.log('请输入一个月份:')
month = readline.question() - 0;
if (isNaN(month) || (month > 12 || month < 1)) {
while (true) {
console.log('请重新输入月份在(1-12月之间)');
month = readline.question() - 0;
if (!isNaN(month) && (month >= 1 && month <= 12)) {
break;
}

}
}
//根据输入的月份,判断对应的天数。
if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
day = 29;

} else {
day = 28;
}
}
else if (month <= 7 && month % 2 != 0 || month > 7 && month % 2 == 0) {
day = 31;
}
else {
day = 30;

}

//判断输入正确的天数

console.log('请输入日期');
let day2 = readline.question() - 0;
if (day2 > day || isNaN(day2)) {
while (true) {
console.log(`输入错误,请重新输入一个数字,最大输入${day}`);
day2 = readline.question() - 0;
if (day2 < day && !isNaN(day2)) {
break;
}
}
}
//累积天数
day = 0;//上面已经计算出month的天数day,应该重新赋值为0,不然前面month的天数也会一起加进去。
for (let i = 1; i < month; i++) {
if (i == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
day += 29;
} else {
day += 28;
}
}
else if (i <= 7 && i % 2 != 0 || i > 7 && i % 2 == 0) {
day += 31;
}
else {
day += 30;
}
}
console.log(`${year}年${month}月${day2}日是这一年的第${day + day2}天`);
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM