小编Amb*_*ana的帖子

按字典顺序升序排序的日期字符串格式是按时间顺序降序排列?

将日历日期编码为以下YYYY-MM-DD格式的字符串(带或不带分隔符,例如2014-04-21,2014.04.2120140421)具有以下属性:

\n\n
    \n
  • 按字典顺序升序对字符串进行排序(将它们视为简单字符串,不知道它们代表什么)将它们按时间顺序排列
  • \n
  • 日历日期和字符串之间的转换对于人类来说是显而易见的(2014-04-21显然代表April 21, 2014
  • \n
\n\n

请注意,为此,日期的每个组成部分(年、月和日)必须始终使用相同数量的字符,如果数字太小,则使用前导零。这意味着YYYY最多只能代表年9999。如果我们也想表示 5 位数的年份,那么上面示例中的日期就变成02014-04-21

\n\n

问题:

\n\n

有没有一种方法可以将日历日期编码为字符串,以便按字典顺序升序对字符串进行排序,使它们按时间顺序逆序排列?

\n\n

理想情况下,人们很容易在日历日期和您建议的格式之间进行转换,但即使您不管理这个(我下面的解决方案不管理)我仍然想知道您的解决方案。

\n\n

如果有帮助,您可能需要此限制:

\n\n
    \n
  • 我只需要表示 2001 年 1 月 1 日到 2099 年 12 月 31 日之间的日期。
  • \n
\n\n

我能想到的就是这个:

\n\n
    \n
  • 提前选择最大可表示年份,例如 2100
  • \n
  • 将年-月-日转换为(2100 年)、(13 个月)、(32 天),如果这 3 个数字中的任何一个太小,请按照上面的说明添加前导零。
  • \n
  • 于是就Apr 21, 2014变成了86-09-11
  • \n
\n\n

86-09-11我的解决方案的主要问题是它对于代表 的人类来说并不明显 …

sorting algorithm date date-sorting

8
推荐指数
1
解决办法
3225
查看次数

标签 统计

algorithm ×1

date ×1

date-sorting ×1

sorting ×1