福原爱这tm哪够啊是个啥

struct tm_百度百科
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:#ifndef _TM_DEFINEDstruct tm {int tm_
/* 秒 – 取值区间为[0,59] */int tm_
/* 分 - 取值区间为[0,59] */int tm_
/* 时 - 取值区间为[0,23] */int tm_
/* 一个月中的日期 - 取值区间为[1,31] */int tm_
/* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */int tm_
/* 年份,其值等于实际年份减去1900 */int tm_
/* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */int tm_
/* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */int tm_
/* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
struct tm说明
int tm_ /* 从每年的1月1日开始的天数–取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_ /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
long int tm_ /*指定了日期变更线东面时区中UTC东部时区正秒数或UTC西部时区的负秒数*/
const char *tm_ /*当前时区的名字(与环境变量TZ有关)*/
#define _TM_DEFINED
ANSI C标准称使用tm结构的这种时间表示为分解时间(broken-down time)。
tm_sec 有时会超过59,其中60表示闰秒。也时候达到3位数。
struct tm格式转换
可以使用的函数是gmtime()和localtime()将time()获得的日历时间time_t转换成tm结构体。
其中gmtime()函数是将日历时间转化为世界标准时间(即格林尼治时间),并返回一个tm结构体来保存这个时间,而localtime()函数是将日历时间转化为本地时间。
struct tm程序举例
#include &stdio.h&
#include &time.h&
int main(void)
struct tm *
lt =time(NULL);
ptr=localtime(&lt);
printf(&second:%d\n&,ptr-&tm_sec);
printf(&minute:%d\n&,ptr-&tm_min);
printf(&hour:%d\n&,ptr-&tm_hour);
printf(&mday:%d\n&,ptr-&tm_mday);
printf(&month:%d\n&,ptr-&tm_mon+1);
printf(&year:%d\n&,ptr-&tm_year+1900);
struct tm注意事项
通过自定义的指针(struct tm *)对tm结构体成员的引用不包含赋值操作,除非另外定义tm结构体变量。
struct tm *p={0};
之类的赋值操作都是非法的。
在linux下,通过自定义指针对tm结构体成员赋值操作编译可以通过,但执行会提示段错误Segmentation fault(coredump);在gdb模式下,会得到“Cannot access memory at address XXX”的警告。
如果要利用tm结构体成员保存时间数据,可以另外定义struct tm类型的变量。
t.tm_hour=14;
p-&tm_hour=14;
如上的操作是合法的。
企业信用信息已注销的其它豆列
······更多好玩美拍

我要回帖

更多关于 福原爱这tm哪够啊 的文章

 

随机推荐