文章

28

粉丝

226

获赞

51

访问

131.0k

头像
自己平时怎么算,代码就怎写
Sacan SVIP
P1290 上海交通大学/西北工业大学2019机试
发布于2022年6月4日 15:58
阅读数 4.7k

平时我是这样算的:先看年,再看月,再看日。

如果年不同,则先化成同一年,月不同则化成同一个月,然后就可以直接减日子了。

#include <iostream>

using namespace std;

int days_of_year(int year){
    if((year%4==0 && year%100==0) || year%400==0){
        return 366;
    }else{
        return 365;
    }
}

int main()
{
    string x,y;
    cin >> x >> y;
    int days[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
    int y1,m1,d1;
    int y2,m2,d2;
    y1 = stoi(x.substr(0,4));
    y2 = stoi(y.substr(0,4));
    m1 = stoi(x.substr(4,2));
    m2 = stoi(y.substr(4,2));
    d1 = stoi(x.substr(6,2));
    d2 = stoi(y.substr(6,2));

    int ans = 1;

    if(y1 != y2){
        for(int i = y1;i < y2;i++){
            // 假设都是1月1日
            ans += days_of_year(i);
        }
    }

    // 已经来到同一年了。
    if(m1 != m2){
        if((y2%4==0 && y2%100==0) || y2%400==0){
            days[2] = 29;
        }
        int temp1 = 1;
        int temp2 = 1;
        // 假设都是1号
        f...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发