题解 | #日期差值#

日期差值

https://www.nowcoder.com/practice/ccb7383c76fc48d2bbc27a2a6319631c

注意题目要求,最终的结果需要+1天!!!我就是卡在这里了

#define _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
#include <iostream>
using namespace std;

int GetMonthDay(int year, int month)
{//获取某月天数
    int monthDay[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
    if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))) {
        return 29;
    }

    return monthDay[month];
}

bool isMax(int y1, int m1, int d1, int y2, int m2, int d2)
{
    if (y1 > y2) {
        return true;
    }
    else if (y1 = y2)
    {
        if (m1 > m2)
            return true;
        else if (m1 == m2)//月相等比较日期即可
            if (d1 > d2) {
                return true;
            }
            else {
                return false;
            }
        else//年相等,月小了
            return false;
    }
    else {
        return false;
    }
    return false;
}

void Swap(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp;
}

int main()
{
    int year1, month1, day1;
    int year2, month2, day2;
    int number, num1, num2;
    while (scanf("%04d%02d%02d\n%04d%02d%02d", &year1, &month1, &day1, &year2, &month2, &day2) != EOF)
    {
        int flag = 1;
        if (!isMax(year1, month1, day1, year2, month2, day2)) {
            Swap(year1, year2);
            Swap(month1, month2);
            Swap(day1, day2);
        }
        //思路
    //用大的日期-小的日期
    //让大的日期的月份一直-,直到和小日期的年月相同
    //这时候只需要计算天数差距,即可得出最终答案
        int sum = 0;
        while (!((year1 == year2) && (month1 == month2)))
        {
            month1--;
            if (month1 == 0)
            {
                month1 = 12;
                year1--;
            }
            sum += GetMonthDay(year1, month1);
        }
        int D = day1 - day2;//天数差距
        sum += D;
        sum++;//题目要求的补一天
        cout << sum << endl;
    }

    return 0;
}
全部评论
is Max函数这样写简单点 bool isMax(int y1,int m1,int d1,int y2,int m2,int d2) { return y1 == y2 || (y1 > y2 && m1 == m2) ||(y1>y2 && m1>m2 && d1==d2); }
1 回复 分享
发布于 2023-03-10 09:06 湖北

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务