首页 > 代码库 > 济南学习 Day1 T1 am

济南学习 Day1 T1 am

题意:给你两个日期,问这两个日期差了多少毫秒

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<ctime>
 4 #include<iostream>
 5 #define ll long long
 6 using namespace std;
 7 int mth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 8 ll solve(){
 9     int Y=0,M=0,D=0,h=0,m=0,s=0;
10     scanf("%d-%d-%d %d:%d:%d",&Y,&M,&D,&h,&m,&s);
11     Y-=2000;
12     ll ans=365*Y;
13     ans+=(Y+3)/4;// 处理闰年
    // 比如2003年,Y-=2000 然后Y=3 (3+3)/4==1 即只有2000年一个闰年
14 for(int i=1;i<M;i++) ans+=mth[i]; 15 ans+=(!(Y%4)&&M>2)?1:0; 16 ans+=D; 17 ans*=86400; 18 ans+=(h*60+m)*60+s; 19 return ans; 20 } 21 int main(){ 22 freopen("two.in","r",stdin); 23 freopen("two.out","w",stdout); 24 ll s1=solve(); 25 ll s2=solve(); 26 printf("%I64d%s\n",s2-s1,s2-s1?"000":""); 27 return 0; 28 }

思路:见代码。。

注意:我计算的秒,如果两个时间不相等,需要在末尾多输出“000”,如果相等直接输出0

 

济南学习 Day1 T1 am