机试题2019-5

在这里插入图片描述

//算出两个日期与公元0年0月0日的日期差,再进行相减
#include <stdio.h>
int sum(int y,int m,int d)
{
    unsigned char x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int i,s=0;
    for(i=0;i<=y;i++)
        if(i%4==0 && i%100!=0 || i%400==0)
            s+=366;//闰年
        else
            s+=365;//平年

    if(y%4==0 && y%100!=0 || y%400==0)
        x[2]=29;
    for(i=1;i<m;i++)
        s+=x[i];//整月的天数
    s+=d;//日的天数
    return s;//返回总天数,相对公元1年
}
int main()
{
    unsigned int y1,m1,d1,y2,m2,d2;
    long int s1,s2;
    int n;
    scanf("%d",&n);
    while(n--)
    {
       printf("输入第一个年 月 日:");
       scanf("%d %d %d",&y1,&m1,&d1);
       printf("输入第二个年 月 日:");
       scanf("%d %d %d",&y2,&m2,&d2);
       s1=sum(y1,m1,d1);
       s2=sum(y2,m2,d2);
       if (s1 > s2)
           printf("相差天数:%ld\n",s1-s2+1);
       else
           printf("相差天数:%ld\n",s2-s1+1);

    }

}

在这里插入图片描述

发布了9 篇原创文章 · 获赞 0 · 访问量 77

猜你喜欢

转载自blog.csdn.net/chenyx1998/article/details/104939580