C语言计算日期查

计算日期差

【问题描述】
结构
struct Date {
   int year;
   int month;
   int day;
};
利用该结构编写一个程序用来计算两个日期之间相差的天数。
 
【输入形式】
输入两个日期,每个日期分占一行,在一行中日期的年、月、日是三个整数,以空格分隔。并假设第二个日期大于或等于第一个日期。
【输出形式】
第二个日期与第一个日期间相差的天数。
【输入样例】

2003 3 25 
2003 3 29

 

 

 

 

 

【输出样例】

4

 

 

 

        分析题目我们可以知道:我们可以分别算出 2003年3月25日 和 2003年3月29日 距离 2003年1月1日 的天数 最后相减得出所求天数。

        总之就是,分别计算出两个日期举例第一个日期的1月1日(因为第一个日期小)最后相减即可

#include<stdio.h>
int main ()
{
	struct Date{
	int year;int month;int day;
	}x,y;
	int i;
	scanf("%d%d%d%d%d%d",&x.year,&x.month,&x.day,&y.year,&y.month,&y.day);
	int c=0,f=0;
	int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    for(i=1;i<x.month;i++)
    {
    	if((x.year%4==0&&x.year%100!=0&&i==2)||(x.year%400==0&&i==2))c=c+29;
    	else c=c+a[i];
	}
	c=c+x.day;//算出第一个日期距离第一个日期那一年的第一月一日的天数
	for(i=x.year;i<y.year;i++)
	{
		if(i%400==0)f=f+366;
		else f=f+365;
	}
    for(i=1;i<y.month;i++)
    {
    	if((y.year%4==0&&y.year%100!=0&&i==2)||(y.year%400==0&&i==2))f=f+29;
    	else f=f+a[i];
	}
	f=f+y.day;//算出第二个日期距离第一个日期那一年的第一月一日的天数
	printf("%d",f-c);//相减得出相差的天数
}

 欢迎指正。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓零清

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值