【问题标题】:Hashing-algorithm for dates日期的散列算法
【发布时间】:2009-10-11 18:29:55
【问题描述】:

什么是散列日期的好散列算法,例如2009 年 12 月 24 日和 89 年 10 月 31 日?

日期范围约为 1950 年至 2050 年。

能否以某种方式使用 unix 时间戳?

【问题讨论】:

  • 嗯,是的,您可以使用 UNIX 时间戳,因为保证每秒都有一个唯一的时间戳。如果你能告诉我们你为什么要散列,我可以回答得更好。
  • 我想存储成对的日期,然后检查之前输入的日期是否准确。
  • @stereofrog,根据散列的实现,上面需要分配一个 20,501,231 大小的数组,这是相当大的。
  • @cvondrick,在这种情况下,我宁愿使用二进制插入和排序。我现在的问题是如何将两个日期合并为一个数字?

标签: algorithm hash date


【解决方案1】:

您可以使用天数而不是自 Unix 纪元开始以来的秒数。计算一下:

<unix timestamp> / 86400

【讨论】:

  • 你确定% 是好的操作,我更喜欢divison。
  • @ralu:你是对的,它必须是除法而不是模数,因为我感兴趣的是整天而不是剩余的秒数。
  • 这很好,但它不能满足 OP 的需求:“我想存储成对的日期,然后检查之前是否输入过正是该对”。
猜你喜欢
  • 2017-11-14
  • 2012-09-03
  • 1970-01-01
  • 2014-06-04
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
相关资源
最近更新 更多