1.13编程基础之综合应用 25:计算两个日期之间的天数
总时间限制:
1000ms
内存限制:
65536kB
描述
给定两个日期,计算相差的天数。比如2010-1-1和2010-1-3相差2天。
输入
共两行:
第一行包含三个整数startYear,startMonth,startDay,分别是起始年、月、日。
第二行包含三个整数endYear,endMonth,endDay,分别是结束年、月、日。
相邻两个整数之间用单个空格隔开。
年份范围在1~3000。保证日期正确且结束日期不早于起始日期。
输出
输出一个整数,即是两个日期相差的天数。
样例输入
2008 1 1 2009 1 1
样例输出
366
提示
闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。闰年的2月份有29天。
#include<iostream>
using namespace std;
int main( void )
{
int a[3];
int b[3];
long long x,y;
long long delta;
x = 0;
y = 0;
cin >> a[0] >> a[1] >> a[2];
cin >> b[0] >> b[1] >> b[2];
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int i;
for(i=1;i<a[0];i++)
{
x += 365;
if( i%4==0 && i%100 != 0 || i%400==0 )
x++;
}
for(i=1;i<b[0];i++)
{
y += 365;
if(i%4==0&&i%100!=0||i%400==0)
y ++;
}
for(i=1;i<a[1];i++)
{
x += month[i-1];
}
if( (a[0]%4==0&&a[0]%100!=0 || a[0]%400==0) && a[1]>2 )
x++;
for(i=1;i<b[1];i++)
{
y += month[i-1];
}
if((b[0]%4==0&&b[0]%100!=0||b[0]%400==0)&&b[1]>2)
y ++;
x += a[2];
y += b[2];
delta = y - x;
cout << delta << endl;
return 0;
}
2023年信息学奥赛学习规划讲座
信奥学习规划 信息学竞赛之路(2022.07.31)
揭秘信奥集训营的模拟比赛
计算机是如何工作的 计算机原理
计算机科学速成课
计算机科学速成课_计算机科学基础快速课程_dllglvzhenfeng的博客-CSDN博客