㈠ 如何用C語言獲取當前系統時間
需要利用C語言的時間函數time和localtime,具體說明如下:
一、函數介面介紹:
1、time函數。
形式為time_t time (time_t *__timer);
其中time_t為time.h定義的結構體,一般為長整型。
這個函數會獲取當前時間,並返回。 如果參數__timer非空,會存儲相同值到__timer指向的內存中。
time函數返回的為unix時間戳,即從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。
由於是秒作為單位的,所以這並不是習慣上的時間,要轉為習慣上的年月日時間形式就需要另外一個函數了。
2、localtime函數。
形式為struct tm *localtime (const time_t *__timer);
其中tm為一個結構體,包含了年月日時分秒等信息。
這種結構是適合用來輸出的。
二、參考代碼:
#include<stdio.h>
#include<time.h>
intmain()
{
time_tt;
structtm*lt;
time(&t);//獲取Unix時間戳。
lt=localtime(&t);//轉為時間結構。
printf("%d/%d/%d%d:%d:%d ",lt->tm_year+1900,lt->tm_mon,lt->tm_mday,lt->tm_hour,lt->tm_min,lt->tm_sec);//輸出結果
return0;
}
注意事項:
struct tm中的tm_year 值為實際年減去1900, 所以輸出的時候要是lt->tm_year+1900。
㈡ C語言local function definitions are illegal
函數定義出錯。\x0d\x0alocal function definitions are illegal解決辦法 :\x0d\x0a這個沒有別的原因就是少了一個右大括弧「}」,報返皮錯的個數和這個函數的位置有關,好像也和作用域有關,或者和它的使用頻度有關,反正報錯的個數不太一樣,是主應用程序的一個函數少了一個「}」。解決的方法就是:如果函數的數量少就一個一個的用Ctrl+}來查,如果太多的話就的將最近改動過的來試,好像也沒有什麼好的方法。(一般報錯的位置不是真正的出錯位置,一般是報錯位置的上一個函數)\x0d\x0aSyntax error:missing ';'before'}' missing function header(old-style formal list?)這樣的錯誤提示肯定是少了一個左大括弧「{」,這種情況下報錯的數目不會肢困太多,一般也就是四個Syntax error:missing ';'before'}' ,一個missing function header(old-style formal list?),這時候注意你查你這個函數的左大括弧就可以了,當時這時的報錯的行一般都不是漏飢差真正出問題的地方,而是在這個的上面的某個函數少了一個左大括弧。\x0d\x0a這是整個函數的大括弧的問題,如果是函數內部少大括弧的問題的話就不會報這么多錯了,也比較好改。
㈢ C語言如何獲取本地時間,然後取時、分、秒的值
#include <stdio.h>
#include <time.h>
int main()
{time_t timep;
struct tm *tp;
time(&timep);
int p;
tp = localtime(&timep); //取得系統時間
printf("Today is %d-%d-%d ", (1900 + tp->tm_year), (1 + tp->tm_mon), tp->tm_mday);
printf("Now is %d:%02d:%02d ", tp->tm_hour, tp->tm_min, tp->tm_sec);
p=tp->tm_sec;
printf("p=%d ",p);
return 0;
}