Amb*_*ana 8 sorting algorithm date date-sorting
将日历日期编码为以下YYYY-MM-DD格式的字符串(带或不带分隔符,例如2014-04-21,2014.04.21或20140421)具有以下属性:
2014-04-21显然代表April 21, 2014)请注意,为此,日期的每个组成部分(年、月和日)必须始终使用相同数量的字符,如果数字太小,则使用前导零。这意味着YYYY最多只能代表年9999。如果我们也想表示 5 位数的年份,那么上面示例中的日期就变成02014-04-21。
有没有一种方法可以将日历日期编码为字符串,以便按字典顺序升序对字符串进行排序,使它们按时间顺序逆序排列?
\n\n理想情况下,人们很容易在日历日期和您建议的格式之间进行转换,但即使您不管理这个(我下面的解决方案不管理)我仍然想知道您的解决方案。
\n\n如果有帮助,您可能需要此限制:
\n\nApr 21, 2014变成了86-09-1186-09-11我的解决方案的主要问题是它对于代表 的人类来说并不明显April 21, 2014。
YYYY-MM-DD降序对字符串进行排序。那不是我要找的。2001-01-02模棱两可(1月2日或2月1日)。但这在这里并不重要:阅读格式的人会提前知道格式是什么(在本例中YYYY-MM-DD),因此不存在歧义。您可以使用 9 的补码 - 记下 ISO 日期,然后将每个数字替换为 9 减去该数字。至少我可以在脑海中应用编码/解码功能(它们是相同的)。然而,我不明白为什么你不保留一些冗余信息,将 2006-01-02 变成 HJJD-JI-JH-2006-01-02,派生 2006-01-02 -> 7993-98 -97 -> HJJD-JI-JH 替换 0 -> A、1 -> B、2 -> C、3 -> D、4 -> E、5 -> F、6 -> G、7 -> H , 8 -> I, 9 -> J。