如何解决有没有按字母顺序排列月份的人类语言?
所以我喜欢 ISO 格式的日期字符串,即 2021-12-25 - 这意味着您可以应用简单的排序并且日期的顺序正确。
但有时将月份视为英语会很好,而不是试图记住十月是第 8 个月还是第 9 个月或第 10 个月。 (也许只有我)。
所以 2021 年 12 月 25 日读起来很不错但是我失去了那种质量——这个日期现在会出现在 2021 年 11 月 25 日的感恩节之前。 >
所以我想知道是否有一种人类语言可以做到这两点 - 是否有一种语言在该语言的字母表中一月出现在二月之前。例如法语在这里失败(Janvier > Fevrier)。
解决方法
好吧,让我们查询文化:对于每种文化,我们获取月份的名称并检查它们是否已排序(我们将原始名称与排序的名称进行比较)。
C# 代码:
var result = CultureInfo
.GetCultures(CultureTypes.AllCultures)
.Where(ci => ci.DateTimeFormat
.MonthNames
.Where(month => !string.IsNullOrEmpty(month))
.Where(month => !Regex.IsMatch(month,"^M[0-9]+$"))
.Any())
.Where(ci => ci.DateTimeFormat
.MonthNames
.Where(month => !string.IsNullOrEmpty(month))
.SequenceEqual(ci
.DateTimeFormat
.MonthNames
.Where(month => !string.IsNullOrEmpty(month))
.OrderBy(month => month)))
.OrderBy(ci => ci.Name)
.Select(ci => $"{ci.Name} ({ci.EnglishName})");
Console.Write(string.Join(Environment.NewLine,result));
结果:
Empty
所以,地球上没有这样的(幸运的?)文化(至少 .Net 5 知道)
您可以尝试 AbbreviatedMonthNames
、MonthGenitiveNames
,但遗憾的是:输出也会为空。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。