C15-输入一个合理的年、月、日,计算该日期距离1970.1.1的天数

C15-输入一个合理的年、月、日,计算该日期距离1970.1.1的天数

//闰年:4年一润,100不润,400再润
// ((year % 4 == 0 && year % 100 != 0)|| year % 400 ==0) 
#include<stdio.h>
int sum(int y,int m,int d);

int main(void)
{
	int y=1970,m=1,d=1;
	int y1,m1,d1;
	int sum1,sum2;
	
	printf("请输入年,月,日: \n");
	scanf("%d %d %d",&y1,&m1,&d1);
	
	sum1 = sum(y,m,d);
	sum2 = sum(y1,m1,d1);
	
	if(sum1 > sum2)
		printf("相差天数:%ld\n",sum1-sum2);
	else
		printf("相差天数:%ld\n",sum2-sum1); 
	
	
	return 0;
}

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年 
}

上一篇:大象北迁-气温和命运


下一篇:李正元400题 -- 卷四