计算天数

2020-04-02  本文已影响0人  HelloSam
图片.png
图片.png

提示:闰年:能被400 正除,或能被4 整除但不能被100整除。每年1、3、5、7、8、10 、12为大月

#include <stdio.h>
#include <iostream>
using namespace std;

int fun(int year,int month,int day);

int main()
{
    int year,month,day;
    
    int m;
    cin >> m;
    for (int i=0;i<m;i++)
    {
        cin >> year >> month >> day;
        cout << fun(year,month,day) <<endl;
        
    }


    return 0;
}

int fun(int year,int month,int day)
{
    int num;

    if (year%400==0 ||(year%4==0 && year%100!=0))//闰年
    {
        switch (month)
        {
        case 1:num=day; break;
        case 2:num=day+31; break;
        case 3:num=day+31+29 ; break;
        case 4:num=day+31+29+31 ;break;
        case 5:num=day+31+29+31+30;break;
        case 6:num=day+31+29+31+30+31;break;
        case 7:num=day+31+29+31+30+31+30; break;
        case 8:num=day+31+29+31+30+31+30+31; break;
        case 9:num=day+31+29+31+30+31+30+31+31;break;
        case 10:num=day+31+29+31+30+31+30+31+31+30; break;
        case 11:num=day+31+29+31+30+31+30+31+31+30+31; break;
        case 12:num=day+31+29+31+30+31+30+31+31+30+31+30; break;
        default:
            break;
        }
    }
    else
    {
        switch (month)
        {
        case 1:num=day; break;
        case 2:num=day+31; break;
        case 3:num=day+31+28 ; break;
        case 4:num=day+31+28+31 ;break;
        case 5:num=day+31+28+31+30;break;
        case 6:num=day+31+28+31+30+31;break;
        case 7:num=day+31+28+31+30+31+30; break;
        case 8:num=day+31+28+31+30+31+30+31; break;
        case 9:num=day+31+28+31+30+31+30+31+31;break;
        case 10:num=day+31+28+31+30+31+30+31+31+30; break;
        case 11:num=day+31+28+31+30+31+30+31+31+30+31; break;
        case 12:num=day+31+28+31+30+31+30+31+31+30+31+30; break;
        default:
            break;
        }
    }
    return num;
}
上一篇 下一篇

猜你喜欢

热点阅读