C++,Migrated from Lutece 1967 今天是第几天

/*
Migrated from Lutece 1967 今天是第几天
Description
任给三个用一个空格隔开的整数,依次表示年、月、日,说出它是今年的第几天。定义该年的第1天是1月1日。

Input
有多组测试数据.输入的第一行是整数T(1<=T<=200), 表示随后测试数据的组数. 每组测试数据占一行, 
由三个分别表示年、月、日的正整数构成. 相邻两个数之间有一个空格.

Output
对应每组测试数据, 输出一行的结果.
*/

//闰年的判断条件是:年份能被4整除但不能被100整除,或者能被400整除
//闰年的2月有29天,其它年的2月有28天
#include <iostream>
int main(){
    int T;std::cin>>T;
    while(T--){
        int year,month,day;std::cin>>year>>month>>day;
        int days = 0;
        //每个月的天数
        //一三五七八十腊,三十一天永不差
        int month_days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        if((year%4==0&&year%100!=0)||year%400==0){
            month_days[2] = 29;
        }
        switch(month){
            case 12:days += month_days[11];
            case 11:days += month_days[10];
            case 10:days += month_days[9];
            case 9:days += month_days[8];
            case 8:days += month_days[7];
            case 7:days += month_days[6];
            case 6:days += month_days[5];
            case 5:days += month_days[4];
            case 4:days += month_days[3];
            case 3:days += month_days[2];
            case 2:days += month_days[1];
            case 1:days += month_days[0];
        }
        days += day;
        std::cout<<days<<std::endl;
    }
}
posted @ 2025-03-12 19:12  Kazuma_124  阅读(12)  评论(0)    收藏  举报