1

我需要将每月的日期转换为一个人的说法。

例如 4/26 将被称为 26th。4/01 将被称为 First。

我知道我可以使用查找表字符串 foo = {"First", "Second", ...} 然后取月份日期并提取字符串。

有一个更好的方法吗?

4

2 回答 2

3

一般来说,是的,您可以对英语规则进行编码以产生序数。但是,前 19 个单词不可避免地会出现在查找表中,因为它们是例外。

对于一个月中的天数,异常值的范围(1 到 19)覆盖了您需要生成的单词序列总数的大约 60%,因此完全跳过算法并将所有内容在查找表中。如果您决定支持英语以外的语言,这将提高可读性并简化国际化。

于 2012-04-26T18:34:28.033 回答
1

没有办法绕过查找表(即使它是由第三方提供的)。但是您可以减少案例数量:

  • 一个数字 1-20 和 30 的条目(如日期所说)。
  • 可以组合缺失的数字,例如使用 20 + 1、20 + 2、30 + 1 等。
于 2012-04-26T18:34:39.753 回答