C++ 计算 日期差值(牛客网)

点击链接即可查看题目:日期差值_牛客题霸_牛客网

一、 题目

描述

有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天

输入描述:

有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD

输出描述:

每组数据输出一行,即日期差值

示例1

输入:

复制代码
20110412
20110422

输出:

复制代码
11

二、 代码

复制代码
#include <cstdio>
#include<iostream>
using namespace std;

bool IsLeapYear(int year)
{
    return (year%4==0&&year%100!=0)||(year%400==0);
}

int daytab[2][13]={
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
    {0,31,29,31,30,31,30,31,31,30,31,30,31}
};

int calDays(int min_year,int year,int month,int day)
{
    int all_days=0;
    for(int i=min_year;i<year;i++)
    {
        if(IsLeapYear(i)){
            all_days+=366;
        }
        else all_days+=365;
    }
    

    if(IsLeapYear(year)){
       for(int j=1;j<month;j++)
       {
            all_days+=daytab[1][j];
        }
    }
    else{
        for(int j=1;j<month;j++)
        {
            all_days+=daytab[0][j];
        }
    }    
    all_days+=day;
    return all_days;
}

int main()
{

    int year1,month1,day1,year2,month2,day2;
    scanf("%4d%2d%2d",&year1,&month1,&day1);
    scanf("%4d%2d%2d",&year2,&month2,&day2);
    int min_year=min(year1,year2);
    
    int all_day1=calDays(min_year,year1,month1,day1);
    int all_day2=calDays(min_year,year2,month2,day2);       
    
    cout<<abs(all_day1-all_day2)+1;
    return 0;
}
相关推荐
小明同学01几秒前
C++后端项目:统一大模型接入 SDK(五)
服务器·c++·后端·计算机网络·语言模型
Hua-Jay17 分钟前
OpenCV联合C++/Qt 学习笔记(二十四)----差值法检测移动物体、稠密光流法跟踪移动物体及稀疏光流法跟踪移动物体
c++·笔记·qt·opencv·学习·计算机视觉
郭老二32 分钟前
【C++】RPC:远程程序调用
c++·rpc
承渊政道32 分钟前
【贪心算法】(经典实战应用解析(六):整数替换、俄罗斯套娃信封问题、可被三整除的最⼤和、距离相等的条形码、重构字符串)
c++·算法·leetcode·贪心算法·排序算法·动态规划·哈希算法
宠..33 分钟前
VS Code SSH 远程连接 Ubuntu 并实现快速运行(C/C++示例)
java·运维·c语言·开发语言·c++·ubuntu·ssh
闻缺陷则喜何志丹41 分钟前
【图论 树 启发式合并】P7165 [COCI2020-2021#1] Papričice|普及+
c++·算法·启发式算法·图论··洛谷
alexwang21142 分钟前
AT_abc458_d [ABC458D] Chalkboard Median题解
c++·算法·题解·atcoder
故事和你9143 分钟前
洛谷-【图论2-4】连通性问题1
开发语言·数据结构·c++·算法·动态规划·图论
我先去打把游戏先1 小时前
Ubuntu虚拟机(服务器版本)Git安装教程(附常用命令)——从零开始掌握版本控制
服务器·c语言·c++·git·嵌入式硬件·物联网·ubuntu
艾莉丝努力练剑1 小时前
【Linux网络】Linux 网络编程:HTTP(四)从手写服务器到生产级 Nginx 与 cpp-httplib 实战
linux·运维·服务器·网络·c++·nginx·http