输入年月日,各种判断年份(平润年)来输出这是多少年的第几天

这段代码展示了如何使用JavaScript通过用户输入的年份、月份和日期,判断是否为闰年,并计算出这一年中的第几天。程序使用了switch语句和if条件判断来实现,分别处理闰年和平年的不同月份和天数情况。
摘要由CSDN通过智能技术生成
通过输入年月日,各种判断年份(平润年)来输出这是多少年的第几天

用switch方法1:

const readline = require('readline-sync');
console.log('请输入一个年份');
let year = readline.question();
let day, count, month;
if(year>=1&&year<=9999){
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
        console.log('这是闰年,请输入一个月份');
        month = readline.question() - 0;
        switch (month) {
            case 1:
                console.log('请输入天数');
                day = readline.question() - 0;
                if (day >= 1 && day <= 31) {
                    count = parseInt(month / 2);
                    console.log(`这是这一年的第${day}`);
                } else {
                    console.log('输入的天数不合法');
                }
                break;
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                console.log('请输入天数');
                day = readline.question() - 0;
                if (day >= 1 && day <= 31) {
                    count = parseInt(month / 2);
                    if (count <= 3) {
                        console.log(`这是这一年的第${(((count * 31) + (count * 30)) - 1) + day}`);
                    } else {
                        console.log(`这是这一年的第${((((count - 1) * 30) + (count * 31)) - 1) + day}`);
                    }
                } else {
                    console.log('输入的天数不合法');
                }
                break;
            case 2:
                console.log('请输入天数');
                day = readline.question() - 0;
                if (day >= 1 && day <= 29) {
                    console.log(`这是这一年的第${31 + day}`);
                } else {
                    console.log('输入的天数不合法');
                }
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                console.log('请输入天数');
                day = readline.question() - 0;
                if (day >= 1 && day <= 30) {
                    count = parseInt(month / 2);
                    if (count <= 3) {
                        console.log(`这是这一年的第${(((count * 31) + ((count - 1) * 30)) - 1) + day}`);
                    } else {
                        console.log(`这是这一年的第${((((count - 1) * 30) + ((count + 1) * 31)) - 1) + day}`);
                    }
                } else {
                    console.log('输入的天数不合法');
                }
                break;
            default:
                console.log('输入的月份不合理');
        }
    
    } else {
        console.log('这是平年,请输入一个月份');
        month = readline.question() - 0;
        switch (month) {
            case 1:
                console.log('请输入天数');
                day = readline.question() - 0;
                if (day >= 1 && day <= 31) {
                    count = parseInt(month / 2);
                    console.log(`这是这一年的第${day}`);
                } else {
                    console.log('输入的天数不合法');
                }
                break;
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                console.log('请输入天数');
                day = readline.question() - 0;
                if (day >= 1 && day <= 31) {
                    count = parseInt(month / 2);
                    if (count <= 3) {
                        console.log(`这是这一年的第${(((count * 31) + (count * 30)) - 2) + day}`);
                    } else {
                        console.log(`这是这一年的第${((((count - 1) * 30) + (count * 31)) - 2) + day}`);
                    }
                } else {
                    console.log('输入的天数不合法');
                }
                break;
            case 2:
                console.log('请输入天数');
                day = readline.question() - 0;
                if (day >= 1 && day <= 28) {
                    console.log(`这是这一年的第${31 + day}`);
                } else {
                    console.log('输入的天数不合法');
                }
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                console.log('请输入天数');
                day = readline.question() - 0;
                if (day >= 1 && day <= 30) {
                    count = parseInt(month / 2);
                    if (count <= 3) {
                        console.log(`这是这一年的第${(((count * 31) + ((count - 1) * 30)) - 2) + day}`);
                    } else {
                        console.log(`这是这一年的第${((((count - 1) * 30) + ((count + 1) * 31)) - 2) + day}`);
                    }
                } else {
                    console.log('输入的天数不合法');
                }
                break;
            default:
                console.log('输入的月份不合理');
    
        }
    }
}
else{
    console.log('输入的年份不合理');
}

用if方法2:

const readline = require('readline-sync')

let year, month, day;
let isRN = false;//控制是否是闰年
let flag = false;//控制是否输入的日期都正确
console.log('请输入年份');
year = readline.question() - 0;
if (year >= 1 && year <= 9999) {
    //判断是否是闰年
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        //是闰年
        isRN = true;
    }
    //判断月份是否正确
    console.log('请输入月份');
    month = readline.question() - 0;
    if (month >= 1 && month <= 12) {
        //判断天数是否正确
        console.log('请输入天数');
        day = readline.question() - 0;
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
            //1、3、5、7、8、10、12 
            if (day >= 1 && day <= 31) {
                console.log('所有日期全部输入正确');
                flag = true;
            } else {
                console.log('输入的天数不正确');
            }

        } else if (month == 4 || month == 6 || month == 9 || month == 11) {
            //4、6、9、11
            if (day >= 1 && day <= 30) {
                console.log('所有日期全部输入正确');
                flag = true;
            } else {
                console.log('输入的天数不正确');
            }
        } else if (month == 2) {
            //2
            if (isRN) {
                if (day >= 1 && day <= 29) {
                    console.log('所有日期全部输入正确');
                    flag = true;
                } else {
                    console.log('输入的天数不正确');
                }
            } else {
                if (day >= 1 && day <= 28) {
                    console.log('所有日期全部输入正确');
                    flag = true;
                } else {
                    console.log('输入的天数不正确');
                }
            }
        }
    } else {
        console.log('月份输入不合法');
    }



} else {
    console.log('输入的年份不正确');
}

if (flag) {
    let count = 0;
    let m1 = 31, m2 = 28, m3 = 31, m4 = 30, m5 = 31, m6 = 30, m7 = 31, m8 = 31, m9 = 30, m10 = 31, m11 = 30, m12 = 31;
    switch (month) {
        case 1:
            count = day;
            break;
        case 2:
            count = m1 + day;
            break;
        case 3:
            count = m1 + m2 + day;
            break;
        case 4:
            count = m1 + m2 + m3 + day;
            break;
        case 5:
            count = m1 + m2 + m3 + m4 + day;
            break;
        case 6:
            count = m1 + m2 + m3 + m4 + m5 + day;
            break;
    }

    if (isRN && month > 2) {
        count += 1;
    }
    console.log(`${year}${month}${day}日是这一年的第${count}`);
}

为了编写一个简单的C语言程序,用于计算给定日期是一中的第几天,并考虑到闰年,你需要考虑以下几个步骤: 1. **闰年判断**: - 判断是否为闰年的规则:能被4整除但不能被100整除,或者能被400整除的年份闰年。 2. **计算数**: - 一月有31,二月闰年有29,非闰年有28。 - 三月至十二月,每月正常数不变。 以下是一个简单的C程序示例: ```c #include <stdio.h> #include <stdbool.h> bool is_leap_year(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } int days_in_month(int month, bool leap_year) { switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: return leap_year ? 29 : 28; default: return -1; // 非法月份,返回错误 } } int day_of_year(int year, int month, int day) { int total_days = 0; for (int i = 1; i < month; ++i) { total_days += days_in_month(i, is_leap_year(year)); } total_days += day; return total_days; } int main() { int year, month, day; printf("请输入年份、月份(1-12)和日期(1-31): "); scanf("%d %d %d", &year, &month, &day); if (month < 1 || month > 12 || day < 1 || day > days_in_month(month, is_leap_year(year))) { printf("输入的日期无效。\n"); return 1; } int result = day_of_year(year, month, day); printf("这一是一中的第%d。\n", result); return 0; } ``` 这个程序首先检查输入年份是否为闰年,然后计算给定月份之前的总数,加上当前数,得到一中的总数。如果输入的月份或日期不在合法范围内,会给出提示。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值