codeup日期差值

mac2024-10-19  50

题目描述

有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。

输入

有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD

输出

每组数据输出一行,即日期差值

样例输入

20130101 20130105

样例输出

5

刚开始没加换行符,没过,折腾了半天,汗死了

题解

#include<stdio.h> #include<stdlib.h> int isrun(int x){ if((x%4==0&&x%100!=0)||x%400==0) return 1; else return 0; } int main() { int a,b; while(~scanf("%d%d",&a,&b)){ int n1,n2; int temp; if(a<b){ temp=b; b=a; a=temp;//始终令n1保持最大 } n1=a/10000; n2=b/10000;//年 int mon[12][2]={{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 y1,y2; y1=a%10000/100; y2=b%10000/100;//月 int t1,t2; t1=(a%10000)%100;//天 t2=(b%10000)%100; int day=0,day1=0,day2=0; int some=0; for(int i=0; i < n1 ;i++ ){ for(int j=0;j<12;j++){ day1+=mon[j][isrun(i)]; } } for(int i= 0;i<y1-1;i++){ day1+=mon[i][isrun(n1)]; } day1+=t1; //从0到n1的时间; for(int i=0; i < n2 ;i++ ){ for(int j=0;j<12;j++){ day2+=mon[j][isrun(i)]; } } for(int i= 0;i<y2-1;i++){ day2+=mon[i][isrun(n2)]; } day2+=t2; //从0到n2的时间; day=day1-day2+1; printf("%d\n",day); } return 0; }
最新回复(0)