4.
名稱:: | gmtime/localtime |
功能: | transform date and time |
頭檔案: | #include <time.h> |
函數原形: | struct tm *gmtime(const time_t *calptr) struct tm *locatltime(const time_t calptr); |
參數: | calptr time_t類型的時間 |
傳回值: | 傳回指向tm類型的指針。 |
localtime和gmtime之間的差別是:localtime将月曆時間轉換成為本地時間,而gmtiem将月曆時間轉換為國際标準時間。兩個函數的傳回值類型都是tm.該類型的定義如下。
struct tm{
int tm_sec;
int tm_min;
int tm_hout;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
下面是一個例子,列印目前系統的本地時間和國際标準時間。
#include <stdio.h> #include <time.h> main() { time_t ti; struct tm *gtime; strcut tm *ltime; if((ti=time(NULL))<0) perror(“error”); gtime=(struct tm*)malloc(sizeof(struct tm)); ltime=( struct tm*)malloc(sizeof(struct tm)); if((gtime=gmtime(&ti))<0) perror(“error”); if((ltime=localtime(&ti))<0) perror(“error”); printf(“gmtime:%d year %d month %d day %d:%d:%d/n”,gtime->tm_year, gtime->tm_mon,gtime->tm_mday,gtime->tm_ hour,gtime->tm_min,gtime->tm_sec); printf(“localtime:%d year %d month %d day %d:%d:%d/n”,ltime->tm_year, ltime->tm_mon,ltime->tm_mday,ltime->tm_ hour,ltime->tm_min,ltime->tm_sec); free(gtime); free(ltime); } |
5.
名稱:: | mktime |
功能: | transform date and time |
頭檔案: | #include <time.h> |
函數原形: | time_t mktime(struct tm *tmptr); |
參數: | tmptr |
傳回值: | 若成功則傳回月曆時間,若出錯則傳回-1 |
mktime以本地時間的年,月,日等為參數,将其轉換成time_t型。是locatltime函數的功能正好相反。
6.
名稱:: | ctime/asctime |
功能: | transform date and time |
頭檔案: | #include <time.h> |
函數原形: | char *asctiem(const struct tm *tmptr); char *ctime(const time_t *calptr); |
參數: | tmptr tmptr類型時間值 calptr calptr類型時間值 |
傳回值: | 指向以NULL結尾的字元串指針 |
Asctime和ctime函數産生形式的26位元組字元串,這與date(1)指令的系統預設輸出形式類似:
Wed Oct 4 07:13:20 CST 2006
7.
名稱:: | strftime |
功能: | format date and time |
頭檔案: | #include <time.h> |
函數原形: | size_t strftime(char *s,size_t max,const char *format,const struct tm *tm); |
參數: | |
傳回值: | 若有空間則傳回存入數組的字元數,否則傳回0。 |
下面是應用這些函數的一個程式:
#include <time.h> main() { time_t *nowtime; struct tm *gtime; struct tm *ltime; char *t1; char *t2; time(nowtime); gtime=gmtime(nowtime); ltime=localtime(nowtime); t1=ctime(nowtime); t2=asctme(gtime); printf(“time:%s/n”,t1); printf(“time:%s/n”,t2); printf(“hour:%d min:%d sec:%d/n”,gtime->tm_hour,gtime->tm_min,gtime->tm_sec); free(nowtime); free(gtime); free(ltime); } |
文章轉自:http://blog.chinaunix.net/u1/59291/showart.php?id=538558