㈠ c語言。時間差。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
unsigned char time1[] = {10, 8, 31, 9, 26 };
unsigned char time2[] = { 10, 8, 31, 9, 50 };
struct tm t1 = {0};
struct tm t2 = {0};
time_t _t1;
time_t _t2;
double diff;
t1.tm_year = time1[0] + 100;
t1.tm_mon = time1[1];
t1.tm_mday = time1[2];
t1.tm_hour = time1[3];
t1.tm_min = time1[4];
t2.tm_year = time2[0] + 100;
t2.tm_mon = time2[1];
t2.tm_mday = time2[2];
t2.tm_hour = time2[3];
t2.tm_min = time2[4];
_t1 = _mkgmtime( &t1 );
_t2 = _mkgmtime( &t2 );
diff = difftime(_t2, _t1 );
printf( "相差 %.0f 分鍾
", diff / 60 );
}
(1)c語言列印時間差擴展閱讀:
C語言中有兩個相關的函數用來計算時間差,分別是:
time_t time( time_t *t) 與 clock_t clock(void)
頭文件: time.h
計算的時間單位分別為: s , ms
time_t 和 clock_t 是函數庫time.h 中定義的用來保存時間的數據結構
返回值:
1、time : 返回從公元1970年1月1號的UTC時間從0時0分0秒算起到現在所經過的秒數。如果參數 t 非空指針的話,返回的時間會保存在 t 所指向的內存。
2、clock:返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元(clock tick)數。 1單元 = 1 ms。
所以我們可以根據具體情況需求,判斷採用哪一個函數。
具體用法如下例子:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
time_t c_start, t_start, c_end, t_end;
c_start = clock(); //!< 單位為ms
t_start = time(NULL); //!< 單位為s
system("pause");
c_end = clock();
t_end = time(NULL);
//!<difftime(time_t, time_t)返回兩個time_t變數間的時間間隔,即時間差
printf("The pause used %f ms by clock() ",difftime(c_end,c_start));
printf("The pause used %f s by time() ",difftime(t_end,t_start));
system("pause");
return 0;
}
因此,要計算某一函數塊的佔用時間時,只需要在執行該函數塊之前和執行完該函數塊之後調用同一個時間計算函數。再調用函數difftime()計算兩者的差,即可得到耗費時間。
㈡ 【急求】c語言 求兩個時間的差值
/*可以處理空格!!!*/
#include<stdio.h>
#include<string.h>
structTTime
{
inth,m,s;
longGetSec(){return3600L*h+60*m+s;}
voidStrToTime(char_str[])
{
inti,j,len=strlen(_str);
/*去空格*/
for(i=0;i<len;++i)
if(_str[i]=='')
{
for(j=i;j<len-1;++j)
_str[j]=_str[j+1];
--len;
i=-1;
continue;
}
/*讀小時*/
j=0;
for(i=0;i<len;++i)
if(_str[i]==':')
break;
else
j=j*10+_str[i]-'0';
h=j;
/*讀分鍾*/
j=0;
for(++i;i<len;++i)
if(_str[i]==':')
break;
else
j=j*10+_str[i]-'0';
m=j;
/*讀秒*/
j=0;
for(++i;i<len;++i)
j=j*10+_str[i]-'0';
s=j;
}
voidToPlan(longt)
{
inthh,mm,ss;
hh=t/3600;
t%=3600;
mm=t/60;
t%=60;
ss=t;
printf("%2.2d:%2.2d:%2.2d ",hh,mm,ss);
}
}Ta,Tb,Tc;
voidmain()
{
chara[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());
}
㈢ c語言如何計算時間差
boolcomputer(file_date_tt1,file_date_tt2)
{
intmin=t1.i_dd<t2.i_dd?t1.i_dd:t2.i_dd;
inttime1=(t1.i_dd-min)*24+t1.i_hh;
inttime2=(t2.i_dd-min)*24+t2.i_hh;
if(time1>time2)
{
if(time1-time2>12)
{
printf("時間超過12個小時! ");
returntrue;
}
printf("時間不超過12個小時! ");
returnfalse;
}
else
{
if(time2-time1>12)
{
printf("時間超過12個小時! ");
returntrue;
}
printf("時間不超過12個小時! ");
returnfalse;
}
}
㈣ C語言一段輸入兩個時間,幾小時幾分鍾,然後輸出時間差的代碼,為什麼出錯
#include<stdio.h>
int main()
{
int hour1,min1,hour2,min2;
printf("請輸入:");
scanf("%d %d %d %d",&hour1,&min1,&hour2,&min2);
int t1 = hour1*60+min1;
int t2 = hour2*60+min2;
printf("%d,%d",(t2-t1)/60,(t2-t1)%60);
return 0;
}
㈤ c語言計算時間差
#include <time.h>
time_t start_time, end_time;
double elapsed_time;
time( &start_time );
... ...
time( &end_time );
elapsed_time = difftime(start_time, end_time);
㈥ C語言輸入兩個時間(同一天的兩個時和分),計算其時間差,輸出相差幾小時幾分鍾
/**
time.c
定義一個結構體實現兩個時間的加減
*/
#include<stdio.h>
#include<string.h>
typedef struct
{
int seconds;
int minutes;
int hours;
}Time;
int checkTime(Time time);
void printTime(Time time);
void swap(Time *time1,Time *time2);//大的時間放在前面
Time subtract1(Time *first,Time *second);
Time subtract(Time *first,Time *second);//默認第一個時間比第二個大
int main()
{
Time time1;
Time time2;
Time time3;
char againch[5]="y";
while(strcmp(againch,"y")==0||strcmp(againch,"Y")==0)
{
int again=1;
while(again)
{
printf("輸入時間1:");
scanf("%d:%d:%d",&time1.hours,&time1.minutes,&time1.seconds);
if(checkTime(time1))
{
printf("-----輸入時間格式錯誤!請重新輸入 ");
again=1;
}
else
again=0;
}
again=1;
while(again)
{
printf("輸入時間2:");
scanf("%d:%d:%d",&time2.hours,&time2.minutes,&time2.seconds);
if(checkTime(time2))
{
printf("-----輸入時間格式錯誤!請重新輸入 ");
again=1;
}
else
again=0;
}
swap(&time1,&time2);
printf(" ");
printTime(time1);
printf(" - ");
printTime(time2);
time3=subtract(&time1,&time2);
printf(" = ");
printTime(time3);
printf(" ");
printf("繼續[y/n]?:");
scanf("%s",againch);
}
return 0;
}
//檢查時間的格式
int checkTime(Time time)
{
// printf("小時格式錯誤:%d ",(time.hours>=24||time.hours<0));
// printf("分鍾格式錯誤:%d ",(time.minutes>=60||time.minutes<0));
// printf("秒格式錯誤 :%d ",(time.seconds>=60||time.minutes<0));
return ((time.hours>24||time.hours<0)||(time.minutes>=60||time.minutes<0)||(time.seconds>=60||time.minutes<0));
}
//輸出按個數輸出時間
void printTime(Time time)
{
printf("%d:%d:%d",time.hours,time.minutes,time.seconds);
}
//大的時間放到第一個變數,小的時間方法哦第二個變數
void swap(Time *time1,Time *time2)
{
//保證第一個時間永遠大於第二個時間
if(time2->hours>time1->hours)//如果有time
{
//交換兩個時間的小時
time2->hours^=time1->hours;
time1->hours^=time2->hours;
time2->hours^=time1->hours;
//交換兩個時間的分鍾:
time1->minutes^=time2->minutes;
time2->minutes^=time1->minutes;
time1->minutes^=time2->minutes;
//交換兩個時間的秒:
time1->seconds^=time2->seconds;
time2->seconds^=time1->seconds;
time1->seconds^=time2->seconds;
}
else if(time2->minutes>time1->minutes&&time1->hours==time2->hours)
{
//交換兩個時間的分鍾:
time1->minutes^=time2->minutes;
time2->minutes^=time1->minutes;
time1->minutes^=time2->minutes;
//交換兩個時間的秒:
time1->seconds^=time2->seconds;
time2->seconds^=time1->seconds;
time1->seconds^=time2->seconds;
}
else if(time2->seconds>time1->seconds&&time1->minutes==time2->minutes)
{
//交換兩個時間的秒:
time1->seconds^=time2->seconds;
time2->seconds^=time1->seconds;
time1->seconds^=time2->seconds;
}
}
//計算兩個時間的差
Time subtract(Time *first,Time *second)//默認第一個時間比第二個大
{
Time result;
//先對秒進行相減
if(first->seconds>=second->seconds)//如果第一個秒大於或者等於
{
result.seconds=first->seconds-second->seconds;
}
else//如果第一個的秒數小的話
{
first->minutes=first->minutes-1;//借位
first->seconds=first->seconds+60;
result.seconds=first->seconds-second->seconds;
}
//接著對分鍾相減
if(first->minutes>=second->minutes)//如果第一個秒大於或者等於
{
result.minutes=first->minutes-second->minutes;
}
else//如果第一個的秒數小的話
{
first->hours=first->hours-1;//借位
first->minutes=first->minutes+60;
result.minutes=first->minutes-second->minutes;
}
//交換後 默認第一個小時會大於第一個,沒有借位的情況,不用
result.hours=first->hours-second->hours;
return result;
㈦ C語言怎麼把時間1和時間2換成分鍾,再計算時間差
unsigned int time1, time2, h, m;
time1 = h1 * 60 + m1;
time2 = h2 * 60 + m2;
time1 = time1 > time2 ? time1 - time2 : time2 - time1;
h = time1 / 60;
m = time1 % 60;
printf("時間差為%u小時%u分鍾\r\n", h, m);
㈧ C語言中如何計算時間差 秒
C語言中有時間函數(time函數),可以列印出系統時間,相減就行。當然,也有各類延時函數。sleep族函數。
㈨ C語言計算兩個時間之間的時間差,精確到秒。 現在我用的是time_t來計算的,但是我發現這個tim
第一個時間相對於1900-01-01 00:00:00是多少秒
第二個時間相對於1900-01-01 00:00:00是多少秒
再相減就OK