Linux C编程的时间函数例程
前言:本文将介绍一些时间函数,但不会一一解释这些函数,只是提供这些函数所返回的值来方便开发者的使用。
time()
返回当前时间和日期距1970.1.1 00:00:00经过的秒数。
#include<stdio.h>
#include<time.h>
int main(void)
{
printf("%lds\n\n",time(NULL));
return 0;
}
结果:
gettimeofday()
返回当前时间和日期距1970.1.1 00:00:00经过的秒数及微妙数。
#include<stdio.h>
#include<sys/time.h>
int main(void)
{
struct timeval st;
gettimeofday(&st,NULL);
printf("%lds %ldus\n",st.tv_sec,st.tv_usec);
return 0;
}
结果:
gmtime()
返回以年月日时分秒周日表示的国际标准时间。
#include<stdio.h>
#include<time.h>
int main(void)
{
time_t t;
struct tm *p;
char *daylight=p->tm_isdst?"summer":"winter";
char *week[]={
"SUNDAY",
"MONDAY",
"THESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY"
};
time(&t);
p=gmtime(&t);
printf("daylight: %s\n",daylight);
printf("Today is the NO.%d day of this year\n",((p->tm_yday)+1));
printf("%d-%d-%d %s\n",((p->tm_year)+1900),((p->tm_mon)+1),p->tm_mday,week[p->tm_wday]);
printf("%dh:%dm:%ds\n",p->tm_hour,p->tm_min,p->tm_sec);
return 0;
}
结果:
localtime()
返回以年月日时分秒周日表示的本地时间。
#include<stdio.h>
#include<time.h>
int main(void)
{
time_t t;
struct tm *p;
char *daylight=p->tm_isdst?"summer":"winter";
char *week[]={
"SUNDAY",
"MONDAY",
"THESDAY",
"WEDNESDAY",
"THURSDAY",
"FRIDAY",
"SATURDAY"
};
time(&t);
p=localtime(&t);
printf("daylight: %s\n",daylight);
printf("Today is the NO.%d day of this year\n",((p->tm_yday)+1));
printf("%d-%d-%d %s\n",((p->tm_year)+1900),((p->tm_mon)+1),p->tm_mday,week[p->tm_wday]);
printf("%dh:%dm:%ds\n\n",p->tm_hour,p->tm_min,p->tm_sec);
return 0;
}
结果:
mktime()
返回time_t值。
#include<stdio.h>
#include<time.h>
int main(void)
{
time_t t;
struct tm *p;
time(&t);
p=localtime(&t);
printf("%lds\n",mktime(p));
return 0;
}
结果:
asctime()
返回产生26字节的字符串形式。
#include<stdio.h>
#include<time.h>
int main(void)
{
time_t t;
struct tm *p;
time(&t);
p=localtime(&t);
printf("%s\n",asctime(p));
return 0;
}
结果:
ctime()
返回产生26字节的字符串形式。
#include<stdio.h>
#include<time.h>
int main(void)
{
time_t t;
time(&t);
printf("%s\n",ctime(&t));
return 0;
}
结果:
strftime()
返回可自定义的格式化的时间值。
#include<stdio.h>
#include<time.h>
#define MAX 128
int main(void)
{
time_t t;
struct tm *p;
char buf[MAX];
time(&t);
p=gmtime(&t);
strftime(buf,MAX,"NOW is %Y/%m/%d %H:%M:%S\n",p);
fputs(buf,stdout);
return 0;
}
结果:
反馈与建议
- 微博:@AnSwEr不是答案
- github:AnSwErYWJ
- 博客:AnSwEr不是答案的专栏