这就里面的参数已经很详尽也很简单了
所以不需要你再去做其它的事情,只要填充这个结构就可以了
当然如果你非要用以上概述的方法来完成任务的其实也很简单
只需要将以上的内容填充到这个结构体然后再调用mktime函数就可以了
下面我给个简单的实现可以参考下,然后根据自己的实际情况再做些修改
void settime(unsigned char *buf,int buf_len){struct tm t int year=0memset(&t,0,sizeof(t)) memcpy(&year,buf,2)//前两个字节为年份year-=1900//struct sm结构中年份是以1900年开始计算的 t.tm_year=year t.tm_mon=(int)buf[2]-1 t.tm_mday=(int)buf[3] t.tm_hour=(int)buf[4] t.tm_min=(int)buf[5] t.tm_sec=(int)buf[6]if(mktime(&t) == -1) //设置时间perror("mktime")}
Linux C编程获取当前时间用time这个函数,time函数会返回一个time_t类型的时间戳(这个time_t类型实际上是一个长整型,定义在time.h头文件中)。time函数的函数原型是这样的:time_t time(time_t *tloc)
使用time函数需要包含time.h头文件:
#include <time.h>
调用time函数的代码是这样的:
time_t t
t=time((time_t *) 0)
因为time函数参数的作用和返回值一样,只是用于接收时间戳,所以这里调用time函数可以传入一个空指针,表示只用它的返回值,不用指针参数来接收时间戳。
因为time函数只是返回一个时间戳,如果想打印直观的时间信息,可以把刚才的time_t作为参数调用ctime函数,ctime函数会返回一个字符串,ctime函数的调用是这样的:
printf("The time and date is: %s", ctime(&t))
t就是刚才调用time函数返回的time_t类型变量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)