Chinaunix首页 | 论坛 | 博客
  • 博客访问: 601772
  • 博文数量: 262
  • 博客积分: 8433
  • 博客等级: 中将
  • 技术积分: 2141
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-31 09:37
文章分类

全部博文(262)

文章存档

2012年(1)

2011年(168)

2010年(92)

2009年(1)

分类: C/C++

2011-02-24 16:23:30

p { margin-bottom: 0.21cm; }函数原型:

int settimeofday(const struct timeval *tv , const struct timezone *tz);  

struct timeval {
    time_t      tv_sec;     /*
seconds   since   Jan.   1,   1970 */
    suseconds_t tv_usec;    /*
微妙 */
};

struct timezone {
    int tz_minuteswest;     /* minutes west of Greenwich */
    int tz_dsttime;         /* type of DST correction */
};

用于修改当前系统时间(只改变系统时间,不改变硬件时钟时间)

tv表示需要设置的时间,tz表示时区。如果tvtz某一项为NULL,表示对相关的信息不感兴趣。

如何把我们熟知的时间格式转换成tv->tv_sec:

利用结构体struct tm {

int tm_sec; /* 秒 – 取值区间为[0,59] */

int tm_min; /* - 取值区间为[0,59] */

int tm_hour; /* - 取值区间为[0,23] */

int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */

int tm_mon; /* 月份(从一月开始,0 代表一月) - 取值区间为[0,11] */

int tm_year; /* 年份,其值等于实际年份减去 1900 */

int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1 代表星期一,以此类推 */

int tm_yday; /* 从每年的1 1 日开始的天数 – 取值区间为[0,365],其中0代表 1 1日,

1 代表1 2日,以此类推 */

int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,

tm_isdst 0;不了解情况时,tm_isdst()为负。*/

};

把我们熟悉的时间格式存到该结构体中,然后再用mktime()转成time_t.

time_t mktime(struct tm * timeptr);

然后把mktime的返回值存入tv->tv_sec即可。再用settimeofday就可以设置时间了


阅读(6262) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~