日期的哈希算法

4

什么是适合哈希日期的好算法,例如24/12/09和31/10/89?

这些日期将从1950年到2050年不等。

是否可以使用Unix时间戳来实现?


1
当然,你可以使用UNIX时间戳,因为每秒都保证有一个唯一的时间戳。如果你告诉我们你为什么要进行哈希操作,我会有更好的回答。 - Jed Smith
我想存储日期对,然后检查是否已经输入了完全相同的日期对。 - Håkon
@stereofrog,根据哈希的实现方式,上述操作需要分配一个大小为20,501,231的数组,这相当巨大。 - carl
@cvondrick,在这种情况下,我宁愿使用二进制插入和排序。我的问题是如何将两个日期组合成一个数字? - Håkon
1个回答

11
你可以使用从 Unix 纪元开始到现在的天数而不是秒数。只需计算:
<unix timestamp> / 86400

3
你确定使用百分号进行运算是正确的吗?我更倾向于使用除法。 - Luka Rahne
1
@ralu:你说得对,应该是除法而不是取模,因为我关心的是完整的天数而不是剩余的秒数。 - Gumbo
1
这样做没问题,但它不能满足 OP 的需求:“我想存储日期对,然后检查是否已经输入了 完全相同的日期对”。 - Alix Axel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接