c语言中如何将年月日时分秒值转为秒数用unsigned int类型存储起来?

我请说下,c语言中如何将年月日时分秒值转为秒数用unsigned int类型存储起来?
最新回答
人不喂鸡天猪地灭

2025-03-02 05:58:54

C语言中使用时间需要引入 time.h 头文件

类型为 time_t实质上就是一个数值,可以在开发环境里找到它的定义, 会发现它是typedef long time_t
也就是说它是长整型的数据类型. 而在VC++6.0中, long和int的长度一样, 所以unsigned int是可以保存时间的, 但是一般就直接用time_t:

time_t time = time(0); //获取当前系统时间
怀念与爱无关

2025-03-02 06:42:47

time_t mktime(
struct tm *timeptr
); 把日期转换成整型
struct tm *localtime(
const time_t *timer
); 把整型转换成日期
要注意int可能不够用,至少需要long, 看 time_t 的定义。

至于字符串,则需要你自己把它拆分成年月日时分秒等值,然后填充tm结构体,然后mktime。
这些函数已经考虑了用尽量少的字节数存储尽量大的时间范围,一个int的表达范围太有限了。
你想用一个小数来精确地表达一个大数,这怎么可能呢?
假惺惺‘說爱

2025-03-02 02:55:27

一个int的表达范围太有限了。