我们在编写代码的过程中,可能会经常用到时间函数,提前收藏一下,有备无患>_<
详细介绍,函数定义如下:
参数:
timer 存取结果的时间指针变量,类型为time_t,指针变量可以为null。
如果timer指针非null,则time()函数返回值变量与timer指针一样,都指向同一个内存地址;
否则如果timer指针为null,则time()函数返回一个time_t变量时间。
返回值,如果成功,获取当前系统日历时间,否则返回 -1。
结构体struct tm中的属性
在结构体,编译器内置
这里有几个地方要注意:
tm_sec 在C89的范围是[0-61],在C99更正为[0-60]。通常范围是[0-59],只是某些系统会出现60秒的跳跃。
tm_mon 是从零开始的,所以一月份为0,十二月份为11,计算月份的时候需要加1。
tm_year 计算年份的时候需要加上1900
也可以使用本地时间函数p=localtime(time_t* nowtime)将nowtime变量中的日历时间转化为本地时间
在这里我们先看一个例子
#include<time.h>//这里要引入时间的头文件
int mian(){
time_t t;//先创建一个time_t类型的变量t
tm tmp;//创建一个新时间的结构体tmp.也可以时结构体指针 struct tm *p;
time(&t);//使用该函数就可得到当前系统时间,
使用该函数需要将传入time_t类型变量t的地址值。
localtime_s(&tmp,&t);//由于此时变量t中的系统时间值为日历时间,我们需要调用本地时间函
数p=localtime(time_t* t)将t变量中的日历时间转化为本地时间,
存入到指针为p的时间结构体中。不改的话,可以参照注意事项手动改。
也可以p=localtime(&t);
year = tmp.tm_year+1900;//年
month = tmp.tm_mon+1;//月
days = tmp.tm_mday;//日 每月的第n天
hour = tmp.tm_hour;//时
min = tmp.tm_min;//分
sec = tmp.tm_sec;//秒
wdays = tmp.tm_wday;//周n
printf("%d年%d月%d日 %d时%d分%d秒 周%d",year,month,mday,hour,min,sec,wday);//打印
}
注意:这里获取的年就要+1900,月要+1.
这样一个简单的当地时间就获取好了。