⑴ 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語言如何計算兩個時間相差多少
任意輸入兩個24小時制的時間,輸出兩個時間的時間差;
⑶ 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語言中,如何比較兩個時間相差幾天
計鎮攜鄭算兩個年月日之間的天數,思路是分別算出日期的總天數然後相減。
要考慮閏年的情況,判斷閏年的口訣:4年一閏,100年不閏御頌,400年再閏。
((year
%
4
==
0
&&
year
%
100
!=
0)
||
year
%
400
==
0)
網上找了一個(偷懶=
=!),修改下如下:
#include
<stdio.h>
int
sum(int
y,int
m,int
d)
{
unsigned
char
x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int
i,s=0;
for(i=1;i<y;i++)
if(i%4==0
&&
i%100!=0
||
i%400==0)
s+=366;//閏隱檔年
else
s+=365;//平年
if(y%4==0
&&
y%100!=0
||
y%400==0)
x[2]=29;
for(i=1;i<m;i++)
s+=x[i];//整月的天數
s+=d;//日的天數
return
s;//返回總天數,相對公元1年
}
void
main()
{
unsigned
char
y1,m1,d1,y2,m2,d2;
int
s1,s2;
printf("輸入第一個年
月
日:");
scanf("%d
%d
%d",&y1,&m1,&d1);
printf("輸入第二個年
月
日:");
scanf("%d
%d
%d",&y2,&m2,&d2);
s1=sum(y1,m1,d1);
s2=sum(y2,m2,d2);
if
(s1
>
s2)
printf("相差天數:%ld\n",s1-s2);
else
printf("相差天數:%ld\n",s2-s1);
}
以上代碼VC6編譯測試通過。
⑸ 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
<time.h>
clock_t
start;
clock_t
end;
start
=
clock();
...//需要計算時間的代碼片斷
end
=
clock();
printf("%ld",
(end
-
start)/clk_tck/60);