/*可以处理空格!!!*/
#include<stdio.h>
#include<string.h>
struct TTime
{
int h,m,s
long GetSec(){return 3600L*h+60*m+s}
void 樱圆StrToTime(char _str[])
{
int 前颂腊i,j,len=strlen(_str)
/*去空格*/
for(i=0i<len++i)
if(_str[i]==' ')
{
for(j=ij<len-1++j)
_str[j]=_str[j+1]
--len
i=-1
continue
}
/*读小时慧滑*/
j=0
for(i=0i<len++i)
if(_str[i]==':')
break
else
j=j*10 + _str[i]-'0'
h = j
/*读分钟*/
j=0
for(++ii<len++i)
if(_str[i]==':')
break
else
j=j*10 + _str[i]-'0'
m = j
/*读秒*/
j=0
for(++ii<len++i)
j=j*10 + _str[i]-'0'
s = j
}
void ToPlan(long t)
{
int hh,mm,ss
hh = t/3600
t%=3600
mm = t/60
t%=60
ss=t
printf("%2.2d:%2.2d:%2.2d\n",hh,mm,ss)
}
}Ta,Tb,Tc
void main()
{
char a[105],b[105]
gets(a)
gets(b)
Ta.StrToTime(a)
Tb.StrToTime(b)
printf("sec: %ld, time: ",Tb.GetSec()-Ta.GetSec())
Tc.ToPlan(Tb.GetSec()-Ta.GetSec())
}
bool computer(file_date_t t1, file_date_t t2)
{
int min = t1.i_dd<t2.i_dd?t1.i_dd:t2.i_dd
铅陵 int time1 = (t1.i_dd-min)*24+t1.i_hh
int time2 = (t2.i_dd-min)*24+t2.i_hh
if (time1 > time2)
{
if (time1 - time2 > 12)
{
printf("时间超过12个小时!\n")
return true
}
printf("时间不指激薯超过12个小时!\n")
return false
}
else
{
if (time2 - time1 > 12)
{
printf("时间超过12个小时!\n")
return true
}
唯者printf("时间不超过12个小时!\n")
return false
}
}
看你的日期时间怎样表示的首碰宴者银。如果2个日期时间都是 time_t 形式,那么直接 用 time.h 里的difftime (t1,t0) 直接得 到时间差。
如果 自己 给定 整数 年,月,日,时,分,秒 那么需要做些工作后,
用 mktime(struct tm * target_time) 转为 time_t 形式。
例如:
time_t rawtime
struct tm * target_time
time_t now,t_end
int y,mo, d,h,m,s
// 输入 年,月,日,时,分,秒 y,mo, d,h,m,s
time ( &rawtime )
target_time = localtime ( &rawtime ) // time_t to tm
//吵扒 time struc and to time_t
target_time->tm_year = y - 1900
target_time->tm_mon= mo - 1// month - 1
target_time->tm_mday = d // day
target_time->tm_hour = h // hour
target_time->tm_min = m
target_time->tm_sec = s
t_end = mktime (target_time)
// printf("%s ",ctime(&t_end)) // print and check 得到的日期。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)