求二个日期之间的天数

题目描述

问题描述:

请编写程序计算二个日期之间的天数,比如2013-1-2 和2013-1-3之间的天数是一天,2012-1-1到2012-12-31之间的天数是364天。

输入

输入二行,每行一个日期,包括年份,月份,日期共三个整数,每个整数之间用一个空格隔开。

测试数据保证第二行的日期比第一行的日期大。

输出

输出一个整数,表示2个日期之间的天数

样例输入

1900 1 1
1900 12 31

样例输出

364




#include<iostream> 
using namespace std; 
int main() 
{ 
    int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; 
    int sum=0; 
    int y1,m1,d1,y2,m2,d2; 
    cin>>y1>>m1>>d1>>y2>>m2>>d2; 
    while(1) 
    { 
        if((y1%400==0)||(y1%4==0 && y1%100!=0)) 
            a[2]=29; 
        else
            a[2]=28; 
        d1++; 
        sum++; 
        if(d1>a[m1]) 
        { 
            m1++; 
            d1=1; 
        } 
        if(m1>12) 
        { 
            m1=1; 
            y1++; 
        } 
        if(y1==y2 && m1==m2 && d1==d2) 
            break; 
    } 
    cout<<sum<<endl; 
    return 0; 
} 

在做题的时候最烦可能就是求日期的了,有木有,但是掌握了规律就发现超好做的了,方法还是那句,可能不是最优解,毕竟还是一种方法来的,看了算提供一下思路,增加多一点知识嘛
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值