美文网首页
日期问题

日期问题

作者: CristianoC | 来源:发表于2020-06-27 17:44 被阅读0次

    日期问题掌握规律就很好解决了,主要是处理闰年2月这个问题,输出格式有要求前置0的话用C语言的输出方式即可。

    #include <iostream>
    using namespace std;
    struct da{
        int year;
        int month;
        int day;
    }date[100];
    int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    void is(int y){
        if((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
            mon[2] = 29;
        else
            mon[2] = 28;
    }
    int main(){
        int n,number;
        while (scanf("%d",&n) != EOF){
            for(int i = 0;i < n;i++){
                scanf("%d%d%d%d",&date[i].year,&date[i].month,&date[i].day,&number);
                is(date[i].year);
                int y = date[i].year,m = date[i].month,d = date[i].day;
                if(number <= mon[m+1] - d){
                    d = d + number;
                }else {
                        while (number > mon[m] - d) {
                            number -= mon[m];
                            m++;
                            if (m > 12) {
                                y++;
                                is(y);
                                m = 1;
                            }
                        }
                        d = d + number;
                        }
                printf("%d-%02d-%02d\n",y,m,d);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:日期问题

          本文链接:https://www.haomeiwen.com/subject/awjvfktx.html