码迷,mamicode.com
首页 > 其他好文 > 详细

日期类问题

时间:2019-10-13 15:30:52      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:print   abs   include   日期   mon   ||   std   scan   eof   

题目描述:

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

样例输入:

20110412

20110422

样例输出:

11

#include<stdio.h>
#define isleap(x) x%100!=0&&x%4==0||x%400==0
int dayofmonth[13][2]={
    0,0,
    31,31,
    28,29,
    31,31,
    30,30,
    31,31,
    30,30,
    31,31,
    31,31,
    30,30,
    31,31,
    30,30,
    31,31,
};

struct Date{
    int year;
    int month;
    int day;
    void nextday()
    {
        day++;
        if(day>dayofmonth[month][isleap(year)])
        {
            day=1;
            month++;
            if(month>12)
            {
                month=1;
                year++;
            }
        }
    }
};

int buf[5001][13][32];
int abs(int x)
{
    return x>0?x:-x;
}

int main()
{
    Date tmp;
    int count=0;
    tmp.day=1;
    tmp.month=1;
    tmp.year=0;
    while(tmp.year!=5001)
    {
        buf[tmp.year][tmp.month][tmp.day]=count;
        tmp.nextday();
        count++;
    }
    int y,m,d;
    int y1,m1,d1;
    while(scanf("%4d%2d%2d",&y,&m,&d)!=EOF)
    {
        scanf("%4d%2d%2d",&y1,&m1,&d1);
        printf("%d",abs(buf[y][m][d]-buf[y1][m1][d1])+1);
    }
    return 0;
}

 

日期类问题

标签:print   abs   include   日期   mon   ||   std   scan   eof   

原文地址:https://www.cnblogs.com/womendouyiyang/p/11666471.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!