[原创] 【C标准库里那些好玩又好吃的东西】关于时间库

辛昕   2017-9-20 09:58 楼主
其实~~我一直以为,时间库这种东西,是没什么说头的。
然而今天早上刚到公司打开扣扣,有个小伙伴问我关于时间怎么处理的问题。

引用: 代号:XXX 9:35:25
比如我输入17:20 时间范围是14;10~18;20
代号:XXX 9:35:33
这个算法如何实现啊
初九 9:35:49
你输入这个范围然后要干啥
代号:XXX 9:36:04
做限时啊



一开始我只是很好奇,为毛,他没有想到,其实不管什么鬼 时分秒最后就是一个 uint32_t 的事情?
但是聊着聊着,我意识到,他根本不知道,其实C标准库可以做很多事情。

于是~~
在继续研究那个 limit 之前,我决定抛多一个贴,挖多一个坑。
引用: 初九 9:36:12
很简单啊
初九 9:36:27
搞成一个uint32不就能比了么
代号:XXX 9:36:27
超过这个时间外。就没有效啊
初九 9:36:32
就像UTC时间
初九 9:36:37
只不过你针对的是时分
初九 9:36:40
不用考虑日期
初九 9:36:44
一样的嘛
代号:XXX 9:36:44

代号:XXX 9:36:56
需要考虑日期
初九 9:37:59
那就算上日期咯
代号:XXX 9:38:08
嗯。。
初九 9:38:08
反正最后换成一个uint32这是最简单的
代号:XXX 9:38:18
怎么换??
初九 9:38:20
让我日时分秒的去比较,我才不干,累死了
初九 9:38:26
直接乘啊
初九 9:38:32
以秒为单位
初九 9:38:41
分*60,时*3600
代号:XXX 9:38:52
然后相加?
初九 9:39:16
不然呢
代号:XXX 9:39:16
月日呢
初九 9:39:21
继续乘啊
代号:XXX 9:39:26
好吧

此内容由EEWORLD论坛网友辛昕原创,如需转载或用于商业用途需征得作者同意并注明出处


强者为尊,弱者,死无葬身之地

回复评论 (4)

这篇文章,简直不能太美,说的内容,虽然好像没有PJP书里那么详细。
但是,他说了很多内容,而且,还提到一些很有意思的用法,是我以前也不知道的,非常过瘾。
下面放出链接,然后提几个小问题,可以灰常灰常明显,在文章里找到答案,欢迎回答。

C标准库里的时间函数
强者为尊,弱者,死无葬身之地
点赞  2017-9-20 10:00
小问题1:
char* asctime (const struct tm * timeptr).
这个函数原型,是用来把 时间转换成字符串的,那么有个很搞事情的问题就是
另外一种 文本时间表达格式是 2017/09/20,而且,欧洲和中国、美国的表达方式都略有不同。

美国人   6.1.1987 或者 6/1/1987
欧洲人   1.6.1987 或者 1/6/1987
亚洲人   1987.6.1 或者 1987/6/1

那么,对于这种表达格式,你能找到对应的标准库函数实现么
——自己写,那不用问了,肯定很简单......只要不是自己从 time32_t 开始写就行。
强者为尊,弱者,死无葬身之地
点赞  2017-9-20 10:10
小问题2:
时差问题,双时区问题。
PS:这个加上小问题1,都不是我临时想到的,别忘了,我是做智能手表的,这些破事我天天都得碰碰。

如果你现在要做一个双时区手表(电子的),请问你会怎么处理——不考虑什么乱七八糟的。
就只考虑,当人在不同时区之间飞来飞去时,要调时,通过手动设定自己到了什么时区,然后程序完成余下工作。
强者为尊,弱者,死无葬身之地
点赞  2017-9-20 10:12
自己挖的坑,跪着也要填完............
强者为尊,弱者,死无葬身之地
点赞  2017-9-28 11:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复