打印

能否修改C语言里的time.h的年份(1900)

[复制链接]
5278|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wdliming|  楼主 | 2013-1-4 14:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在写rtc的功能,这里用了unix时间戳,在time.h里的tm结构体中的年份是从1900开始计数的,那样的话能计数到2038年,可是现在已经是2013年了,计数的时间我觉得还是短了些,能不能修稿里面的1900的时间啊,比如说2000,那样就可以计时到2138年了,谢谢!~
沙发
wdliming|  楼主 | 2013-1-5 10:05 | 只看该作者
怎么没人帮忙啊~~

使用特权

评论回复
板凳
SLEET1986| | 2013-1-5 13:30 | 只看该作者
为什么不可以呢,stm32 没time.h文件吧

使用特权

评论回复
地板
wdliming|  楼主 | 2013-1-5 16:37 | 只看该作者
SLEET1986 发表于 2013-1-5 13:30
为什么不可以呢,stm32 没time.h文件吧

但是我找不到time.h对应的实现函数啊~~

使用特权

评论回复
5
wdliming|  楼主 | 2013-1-5 16:46 | 只看该作者
SLEET1986 发表于 2013-1-5 13:30
为什么不可以呢,stm32 没time.h文件吧

但是我找不到time.h对应的实现函数啊~~

使用特权

评论回复
6
hechnology| | 2013-1-5 16:47 | 只看该作者
time.h是C标准的头文件,值代表的意思当然可以自己定,但改了意义就不能直接用库函数了,你要想用库函数就得用标准的unix时间戳和struct tm格式的时间。
但是。。
unix时间戳跟struct tm不是一回事,unix时间戳是一般用time_t(typedef long)类型表示,是相对1970-01-01T00:00:00GMT的秒数,如果long类型是32位的话会遇到2038的问题,64位则不会,但跟你struct tm 中的成员tm_year相对1900年有啥关系呢

使用特权

评论回复
7
wdliming|  楼主 | 2013-1-5 17:11 | 只看该作者
hechnology 发表于 2013-1-5 16:47
time.h是C标准的头文件,值代表的意思当然可以自己定,但改了意义就不能直接用库函数了,你要想用库函数就 ...

我就想能不能把结构体里的tm.year从2000年开始计时,那样不是可以计时到2138年了吗?不知我这想法是不是合理??哈哈

使用特权

评论回复
8
huangfeng33| | 2013-1-5 20:34 | 只看该作者
楼主有这个想法去试一试不就知道了嘛?哈哈……

使用特权

评论回复
9
wdliming|  楼主 | 2013-1-6 11:52 | 只看该作者
huangfeng33 发表于 2013-1-5 20:34
楼主有这个想法去试一试不就知道了嘛?哈哈……

但是我不知道如何去该,到哪里去该啊。。:(

使用特权

评论回复
10
zxz_chy| | 2013-1-15 21:32 | 只看该作者
肯定不行的,这个只跟你的计数器的位数有关,你的tm. year 从2000年开始,对应计数器的值946656000,到2038年一样会溢出的,只有你把计数器位数扩大为64位才行

使用特权

评论回复
11
wdliming|  楼主 | 2013-1-16 20:52 | 只看该作者
zxz_chy 发表于 2013-1-15 21:32
肯定不行的,这个只跟你的计数器的位数有关,你的tm. year 从2000年开始,对应计数器的值946656000,到2038 ...

哦,yeah,原来如此,不过我已经用自己的方法将RTC的值转换为年月日了,只要设定基准值,那样就可计数138年了。弄了好久啊~~~

使用特权

评论回复
12
448251593| | 2013-6-30 10:19 | 只看该作者
我跟楼主有同样的想法.还没想出咋弄.楼主可否将你写的代码发一份  448251593@qq.com 多谢

使用特权

评论回复
13
baidudz| | 2013-6-30 12:33 | 只看该作者
应该不行

使用特权

评论回复
14
txcy| | 2013-6-30 12:43 | 只看该作者
可以试试

使用特权

评论回复
15
wdliming|  楼主 | 2013-7-14 16:26 | 只看该作者
楼上的几位,这个问题,我好久没想过了~~心累啊~

使用特权

评论回复
16
hawksabre| | 2013-7-14 20:03 | 只看该作者
试一试吧   楼主   顶一个   不错哦

使用特权

评论回复
17
hawksabre| | 2013-7-14 20:04 | 只看该作者
做电子这一块    心很累   主要看你是否真的喜欢

使用特权

评论回复
18
wdliming|  楼主 | 2013-7-15 20:24 | 只看该作者
不想做了,我都想换行业了~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我的未来不是梦

76

主题

913

帖子

4

粉丝