C 语言 时间函数使用技巧(汇总)
作者:互联网
在介绍时间函数用法之前,我们首先要了解在 time.h 头文件中已经声明了的一个结构: struct tm
该结构在time.h 头文件内声明如下:
#ifndef _TM_DEFINED
#define _TM_DEFINED
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
#endif
该结构内个成员所代表的意思:
struct tm
{
int tm_sec; //秒(0~61)
int tm_min; //分(0~59)
int tm_hour; //小时(0~23)
int tm_mday; //日(1~31)
int tm_mon; //月份(0~11)
int tm_year; //年,从1970年至今经过的年数
int tm_wday; // 星期:(0~6)
int tm_yday; // 天数(0~365)
int tm_isdst; //夏令时 daylight-saving time
}
下面来介绍几种时间函数的用法:
//函数名称:
time();
//函数原型:
time_t __cdecl time(time_t *_Time)
{
return _time64(_Time);
}
//函数功能:得到机器的日历时间或设置日历时间
//函数返回机器日历时间
//用法:
参数说明: timer = NULL 时得到机器日历时间, timer = 时间数值值,用于设置日历时间, time_t 是一个long 类型
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t timer;
timer = time(NULL);
printf("%ld\n", timer);
}
运行结果是 秒数:
将这个秒数通过时间戳在线转换网站转换为年月日
//函数名称:
localtime();
//函数原型:
struct tm *__cdecl localtime(const time_t *_Time)
{
return _localtime32(_Time);
}
//函数功能: 返回一个以 tm结构表达的机器时间信息
//函数返回:以 tm 结构表达的时间
//用法:
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t timer;
struct tm *tblock;
timer = time(NULL);
tblock = localtime(&timer);
printf("当地时间是 %s", tblock);
}
直接使用 tblock的值 输出结果是有问题的:
想要获取日常使用的时间格式 要多使用一个函数:
//函数名称:
asctime();
//函数原型:
char *__cdecl asctime(const struct tm *_Tm)
//函数功能:获取机器时间(日期时间转换成ASCII码)
//函数返回:返回的时间字符串格式为: 星期,月,日,小时:分:秒,年
//用法:
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t timer;
struct tm *tblock;
timer = time(NULL);
tblock = localtime(&timer);
printf("当地时间是 %s", asctime(tblock));
}
//另一种用法:
//结合 struct tm 结构
#include <stdio.h>
#include <time.h>
#include <string.h>
int main(void)
{
struct tm t;
char str[80];
t.tm_sec = 1;
t.tm_min = 3;
t.tm_hour = 7;
t.tm_mday = 22;
t.tm_mon = 11;
t.tm_year = 56;
t.tm_wday = 4;
t.tm_yday = 0;
t.tm_isdst = 0;
strcpy(str, asctime(&t));
printf("%s", str);
}