當前位置:編程學習大全網 - 編程語言 - C語言的比較兩個時間的函數

C語言的比較兩個時間的函數

1、方法壹:若時間為結構體變量,比較兩個時間的大小,而且不能改變時間的值,可以是:

int timecmp(date_t* date1,date_t* date2)

{

if(date1-> year==date1-> year)

return memcmp(date1, date2,sizeof(date_t));

else

return date1-> year-date2-> year

}

2、方法二:

long getTimeInterval(const char *t1, const char *t2) {

struct tm tm1, tm2;

time_t start, end;

double diff;

memset(&tm1, 0, sizeof(tm1));

memset(&tm2, 0, sizeof(tm2));

strptime(t1, "%Y%m%d", &tm1);

start = mktime(&tm1);

strptime(t2, "%Y%m%d", &tm2);

end = mktime(&tm2);

diff = difftime(start, end);

return d2l(diff);

}

調用:

printf("getTimeInterval=[%ld]\n", getTimeInterval("20101221", "20110326"));

printf("getTimeInterval=[%ld]\n", getTimeInterval("20101221", "20990326"));

第壹行輸出:[-8208000]

第二行輸出:[1292860801]

3、補充:C語言時間函數:

 (1)、獲得日歷時間函數:

可以通過time()函數來獲得日歷時間(Calendar Time),其原型為:time_t time(time_t * timer);

 

 如果已經聲明了參數timer,可以從參數timer返回現在的日歷時間,同時也可以通過返回值返回現在的日歷時間,即從壹個時間點(例如:1970年

1月1日0時0分0秒)到現在此時的秒數。如果參數為空(NUL),函數將只通過返回值返回現在的日歷時間,比如下面這個例子用來顯示當前的日歷時間:

(2)、獲得日期和時間函數:

這裏說的日期和時間就是平時所說的年、月、日、時、分、秒等信息。從第2節我們已經知道這些信息都保存在壹個名為tm的結構體中,那麽如何將壹個日歷時間保存為壹個tm結構的對象呢?

其中可以使用的函數是gmtime()和localtime(),這兩個函數的原型為:

struct tm * gmtime(const time_t *timer);

struct tm * localtime(const time_t * timer);

 

 其中gmtime()函數是將日歷時間轉化為世界標準時間(即格林尼治時間),並返回壹個tm結構體來保存這個時間,而localtime()函數是將

日歷時間轉化為本地時間。比如現在用gmtime()函數獲得的世界標準時間是2005年7月30日7點18分20秒,那麽用localtime()函數

在中國地區獲得的本地時間會比世界標準時間晚8個小時,即2005年7月30日15點18分20秒。

  • 上一篇:2018天津凱旋王國門票+開放時間+交通信息
  • 下一篇:JAVA軟件工程師難學嗎?
  • copyright 2024編程學習大全網