根據用戶輸入的年月日判斷是這一年當中的第幾天,用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