好比獲取當前年份:
linux
/* 獲取當前系統時間 暫時不使用int iyear = 0; int sysyear = 0; time_t now; struct tm *timenow; time(&now); timenow = localtime(&now); sysyear = timenow->tm_year+1900; */
linux下獲取系統時間的方法
能夠用 localtime 函數分別獲取年月日時分秒的數值。 ubuntu
Linux下得到系統時間的C語言的實現方法: 函數
1. 能夠用 localtime 函數分別獲取年月日時分秒的數值。spa
#include<time.h> //C語言的頭文件 #include<stdio.h> //C語言的I/O void main() { time_t now; //實例化time_t結構 struct tm *timenow; //實例化tm結構指針 time(&now); //time函數讀取如今的時間(國際標準時間非北京時間),而後傳值給now timenow = localtime(&now); //localtime函數把從time取得的時間now換算成你電腦中的時間(就是你設置的地區) printf("Local time is %s/n",asctime(timenow)); //上句中asctime函數把時間轉換成字符,經過printf()函數輸出 } 註釋:time_t是一個在time.h中定義好的結構體。而tm結構體的原形以下: struct tm { int tm_sec;//seconds 0-61 int tm_min;//minutes 1-59 int tm_hour;//hours 0-23 int tm_mday;//day of the month 1-31 int tm_mon;//months since jan 0-11 int tm_year;//years from 1900 int tm_wday;//days since Sunday, 0-6 int tm_yday;//days since Jan 1, 0-365 int tm_isdst;//Daylight Saving time indicator };
2. 對某些須要較高精準度的需求,Linux提供了gettimeofday()。指針
#include <stdio.h> #include <stdlib.h> #include <sys/time.h> int main(int argc, char **argv) { struct timeval start,stop,diff; gettimeofday(&start,0); //作你要作的事... gettimeofday(&stop,0); tim_subtract(&diff,&start,&stop); //不一樣的版本函數名稱可能有些不同//ubuntu 10.10 上的函數是timersub(&start,&stop,&diff);printf("總計用時:%d毫秒/n",diff.tv_usec); } int tim_subtract(struct timeval *result, struct timeval *x, struct timeval *y) //int timersub( struct timeval *x, struct timeval *y,struct timeval *result) { int nsec; if ( x->tv_sec > y->tv_sec ) return -1; if ((x->tv_sec==y->tv_sec) && (x->tv_usec>y->tv_usec)) return -1; result->tv_sec = ( y->tv_sec-x->tv_sec ); result->tv_usec = ( y->tv_usec-x->tv_usec ); if (result->tv_usec<0) { result->tv_sec--; result->tv_usec+=1000000; } return 0; }