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

两个日期相差天数

时间:2020-03-31 19:28:07      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:tor   logo   editor   lang   表示   return   输入数据   int   include   

Markdown在线编辑器 - www.MdEditor.com

3 两个日期相差天数 (100分)

现在有两个不同的日期,你能告诉我它们之间差几天吗?

输入格式:输入格式:

有多行数据,每行数据包含6个数字,中间用空格分隔,每3个数字代表一个日期。

输出格式:

对应于输入数据,输出数据有相同的行数,每行表示对应的两个日期相差的天数。

输入样例:

1934 2 4 2047 11 30
2192 10 3 1921 5 8

输出样例:

-41572
99130

Accepted

#include<stdio.h>
int js(int y,int m,int d){
	int sum=d,i;
	for(i=1;i<m;i++){
		if((y%4==0&&y%100!=0)||y%400==0){
		switch(i){
			case 2: sum+=29;break;
			case 4: case 6: case 9: case 11:sum+=30;break;
			default: sum+=31;
		}
	}
	else{
		switch(i){
			case 2: sum+=28;break;
			case 4: case 6: case 9: case 11:sum+=30;break;
			default: sum+=31;
		}
	}	
	}
	return sum;
}
int main(){
	int y1,m1,d1,y2,m2,d2;
	while(scanf("%d%d%d%d%d%d",&y1,&m1,&d1,&y2,&m2,&d2)!=EOF){
		int a,b,c,sum=0,i,j,sum1=0,sum2=0;
		a=y1-y2;
		if(a<0){
			for(i=y1;i<y2;i++){
				if((i%4==0&&i%100!=0)||i%400==0){
					sum+=366;
				}
				else sum+=365;
			}
			sum=sum*(-1);
		}
		if(a>0){
			for(i=y2;i<y1;i++){
				if((i%4==0&&i%100!=0)||i%400==0){
					sum+=366;
				}
				else sum+=365;
			}
		}
		sum1=js(y1,m1,d1);
		sum2=js(y2,m2,d2);
		printf("%d\n",sum-sum2+sum1);
	}
	return 0;
}

两个日期相差天数

标签:tor   logo   editor   lang   表示   return   输入数据   int   include   

原文地址:https://www.cnblogs.com/czl411/p/12607457.html

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