const rs = require("readline-sync");
// 根據用戶輸入的年月日輸出第幾天
// 歡迎
console.log("歡迎來到查詢系統");
// 定義變量得到用戶輸入的年月日。
let year, month, date;
// 得到輸入的年份
console.log("請輸入你要查詢的年份(2000-3000年):");
while (true) {
year = rs.question() - 0;
if (year >= 2000 && year <= 3000) {
break;
} else {
console.log("輸入錯誤請重新輸入(只能查詢2000-3000年):");
continue;
}
}
// 得到月份
console.log("請輸入你要查詢的月份(1-12月):");
while (true) {
month = rs.question() - 0;
if (month >= 1 && month <= 12) {
break;
} else {
console.log("輸入錯誤請重新輸入(只能查詢1-12月):");
continue;
}
}
// 得到日期
console.log("請輸入你要查詢的日期:");
// 判斷小月日期是否輸入正確
if (month == 4 || month == 6 || month == 9 || month == 11) {
while (true) {
date = rs.question() - 0;
if (date >= 1 && date <= 30) {
break;
} else {
console.log("輸入錯誤請重新輸入(只能查詢1-30號):");
continue;
}
}
}
// 判斷二月日期是否輸入正確
else if (month == 2) {
date = rs.question() - 0;
if ((year % 4 == 0 && year % 100 == 0 || year % 400 == 0)) {
while (true) {
if (date >= 1 && date <= 29) {
break;
} else {
console.log("輸入錯誤請重新輸入(只能查詢1-29號):");
continue;
}
}
} else {
while (true) {
if (date >= 1 && date <= 28) {
break;
} else {
console.log("輸入錯誤請重新輸入(只能查詢1-28號):");
continue;
}
}
}
}
// 判斷大月日期是否輸入正確
else {
while (true) {
date = rs.question() - 0;
if (date >= 1 && date <= 31) {
break;
} else {
console.log("輸入錯誤請重新輸入(只能查詢1-31號):");
continue;
}
}
}
// 計算輸入的年月日是第幾天
let monthTime = month - 1, sumDays = 0;
switch (monthTime) {
case 11: sumDays += 30;
case 10: sumDays += 31;
case 9: sumDays += 30;
case 8: sumDays += 31;
case 7: sumDays += 31;
case 6: sumDays += 30;
case 5: sumDays += 31;
case 4: sumDays += 30;
case 3: sumDays += 31;
case 2: if (year % 4 == 0 && year % 100 == 0 || year % 400 == 0) {
sumDays += 29;
} else {
sumDays += 28;
}
case 1: sumDays += 31;
case 0: sumDays += date;
}
// 輸出結果
console.log(`您輸入的${year}年${month}月${date}號是${year}年的第${sumDays}天。`);