求将数据保存的时间通过算法,得到一个整数,用做链表的KEY

xiyanyun 2013-12-27 01:46:53
求将数据保存的时间通过算法,得到一个整数,这个整数不能超过0-70000的范围,这个整数将用做链表

的KEY,比如:2013-12-17 01:01:00 通过算法得到23,2013-12-16 59:59:00 通过算法得到22,则

22<23,证明:2013-12-16 59:59:00 < 2013-12-17 01:01:00,求算法!
...全文
140 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2013-12-27
  • 打赏
  • 举报
回复
直接将时间转成epoch跳秒不就好了?
千树之影 2013-12-27
  • 打赏
  • 举报
回复
(0,70000)和时间两个集合大小都不一样,除非 把条件放宽到:22<=23,证明:2013-12-16 59:59:00 <= 2013-12-17 01:01:00才有可能。
xiyanyun 2013-12-27
  • 打赏
  • 举报
回复
不一定非要7个字节的整数,只要这个整数>0并且<70000就行
还有多远 2013-12-27
  • 打赏
  • 举报
回复
时间戳未定,但是对应的整数却只有70000个,这样子如果不能确定时间戳的个数,是无法直接一一对应的 如果能根据多长时间记录一次来确定其数量,则可以根据时间先后对其一一分配一个整数 如果不能确定时间戳个数,则最简单的方法是线性变换: (1)先确定下时间范围的最大值和最小值,yyyy-mm-dd hh:mm:ss这个表示形式的始末 (2)将yyyy-mm-dd hh:mm:ss线性映射到一个整数上,从而保证了时间的有序性,举个例子: 2013 = 0x07DD,年可以用2个字节表示 mm <= 12 , 月可以用1个字节表示 dd <= 31 , 日可以用1个字节表示 hh <= 23 , 时可以用1个字节表示 mm <= 59 ,分可以用1个字节表示 ss <= 59 ,秒可以用1个字节表示 这样一个时间就可以一一对应的表示成一个7个字节的整数,可以用long long或__Int64 抛砖引玉,仅供参考

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧