c中的time结构体

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;

}


int tm_sec   代表目前秒数,正常范围0-59,允许至61秒

int tm_min   代表目前分数,范围0-59

int tm_hour   代表从午夜算起的时数,范围0-23

int tm_mday  代表目前月份的日数,范围01-31

int tm_mon   代表目前月份,从一月算起,范围从0-11

int tm_year   代表从1900年算起至今的年数

int tm_wday  代表一星期的日数,从星期一算起,范围为0-6

int tm_yday    代表从今年1月1日算起至今的天数,范围0-365

int tm_isdst    代表日光节约时间的旗标



time_t为typedef __int64 __time64_t;

typedef long time_t;

struct timeval
{
       uint tv_sec;
       uint tv.usec;
}

### C语言 `time.h` 头文件中的 `tm` 结构体 #### 定义 在C语言中,`<time.h>`头文件提供了用于处理时间的各种功能。其中,`struct tm` 是一个非常重要的数据结构,用来表示日历时间的分解形式[^1]。 ```c struct tm { int tm_sec; /* seconds after the minute - [0, 60] */ int tm_min; /* minutes after the hour - [0, 59] */ int tm_hour; /* hours since midnight - [0, 23] */ int tm_mday; /* day of the month - [1, 31] */ int tm_mon; /* months since January - [0, 11] */ int tm_year; /* years since 1900 */ int tm_wday; /* days since Sunday - [0, 6] */ int tm_yday; /* days since January 1 - [0, 365] */ int tm_isdst; /* daylight savings flag */ }; ``` 此结构包含了年份、月份、日期以及具体的时间信息等字段,可以方便地操作和获取特定的时间组件。 #### 使用方法 为了更好地理解和使用 `struct tm` ,下面介绍几个常见的函数: - **`localtime()` 和 `gmtime()`** 这两个函数都可以将 `time_t` 类型的时间戳转换成 `struct tm` 形式的本地时间和世界协调时间(UTC),区别在于前者考虑到了当前系统的时区设置而后者不考虑[^3]。 - **`mktime()`** 函数 `mktime()` 可以把给定的一个指向 `struct tm` 的指针所代表的日历时间重新计算并返回对应的 `time_t` 值,这通常是在修改了某个 `struct tm` 实例之后调用它来获得更新后的秒数表示[^2]。 - **`strftime()`** 当需要格式化输出时间字符串时,可利用 `strftime()` 函数按照指定格式打印出由 `struct tm` 表达的时间信息。 下面是简单的代码示例展示如何创建和初始化 `struct tm` 对象,并通过上述提到的一些辅助函数来进行基本的操作: ```c #include <stdio.h> #include <time.h> int main() { time_t rawtime; struct tm *info; // 获取当前时间作为起点 time(&rawtime); info = localtime(&rawtime); printf("Current local time and date: %s", asctime(info)); // 修改时间为明天同一时刻 info->tm_mday += 1; mktime(info); printf("Tomorrow's same time will be :%s\n",asctime(info)); } ``` 这段程序先取得系统当前时间,再将其转化为适合人类阅读的形式显示出来;接着调整一天到未来相同的具体钟点再次呈现新设定好的时间值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值