九度1096 日期差值

/********************************* 
 *    日期:2013-1-10 
 *    作者:SJF0115 
 *    题号: 九度1096 
 *    题目:日期差值
 *    来源:http://ac.jobdu.com/problem.php?pid=1096 
 *    结果:AC 
 *    题意: 
 *    总结: 
**********************************/ 
#include <stdio.h>

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,
};

//判断闰年
int leap_year(int year){
	if((year%100 != 0 && year%4 == 0) || (year % 400 == 0)){
		return 1;
	}
	else{
		return 0;
	}
}
//求与0000年0月0日的时间差
int TDay(int date){

	int day1 = 0;
	int year = date / 10000;
	int month =  (date % 10000) / 100;
	int day =  date % 100;

	for(int i = 1;i< year;i++){
		if(leap_year(i)){
			day1 += 366;
		}
		else{
			day1 += 365;
		}
	}

	int isleap_year = leap_year(year);

	for(int j = 1;j < month;j++){
		day1 +=  dayOfMonth[j][isleap_year];
	}
	
	day1 += day;

	return day1;
}
//求绝对值
int fabs(int x){

	return x<0? -x:x;
}
int main()
{
    int date1,date2;
	//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin); 
    while(scanf("%d %d",&date1,&date2) != EOF)
    {
		printf("%d\n",fabs(TDay(date1) - TDay(date2)) + 1);
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值