题目描述
某个实验需要统计时间,记录了实验开始和结束的时间,计算实验用了多少秒。
输入描述:
第一行输入一个整数n,表示样例个数。接下来每组样例两行,表示开始时间和结束时间,格式为xdayHH:MM:SS,x是一个整数表示第几天,0 < x < 20000,HH表示小时,MM表示分钟,SS表示秒,保证时间合法,结束时间比开始时间晚。
输出描述:
每组数据输出一行一个整数,表示经过的秒数
输入
2 1day03:26:12 1day04:26:12 123day15:00:01 19999day15:00:00
输出
3600 1717286399
原创代码:
#include<stdio.h>
#include<string.h>
char a[30];
char b[30];
int main()
{
int n,i,j,t;
scanf("%d",&n);
for(t=0;t<n;t++)
{
scanf("%s",a);
scanf("%s",b);
long long la=strlen(a),da=0,sa=0,fa=0,ma=0;
long long lb=strlen(b),db=0,sb=0,fb=0,mb=0;
int fd=1;
for(i=0;i<la;i++)
{
if(a[i]!='d'&&fd)
{
da*=10;
da+=a[i]-'0';
}
else
break;
}
sa=(a[i+3]-'0')*10+(a[i+4]-'0');
fa=(a[i+6]-'0')*10+(a[i+7]-'0');
ma=(a[i+9]-'0')*10+(a[i+10]-'0');
fd=1;
for(i=0;i<lb;i++)
{
if(b[i]!='d'&&fd)
{
db*=10;
db+=b[i]-'0';
}
else
break;
}
sb=(b[i+3]-'0')*10+(b[i+4]-'0');
fb=(b[i+6]-'0')*10+(b[i+7]-'0');
mb=(b[i+9]-'0')*10+(b[i+10]-'0');
//printf("%lld %lld\n",fa,fb);
long long ans=(db-da)*3600*24+(sb*3600+fb*60+mb)-(sa*3600+fa*60+ma);
printf("%lld\n",ans);
}
return 0;
}