.NET全球化 IsWeekend?

4
有没有.NET中的区域信息可以知道一个给定日期是工作日还是周末?我会使用函数:

可能重复:
基于文化找出周末日期

public Boolean IsWeekend(DateTime value, CultureInfo cultureInfo)
{
   return (value.DayOfWeek == DayOfWeek.Saturday || value.DayOfWeek == DayOfWeek.Sunday);
}

但是对于某些文化,它返回的结果无效。

.NET是否已经编译了所有文化周末哪些天的工作?


https://dev59.com/f3I-5IYBdhLWcg3wF0Qc - Greg
2
@Greg 当你发现一个重复的问题时,请投票关闭 - Gilles 'SO- stop being evil'
2
我有些犹豫,不确定这是否是一个“好”的重复。 - Greg
这不是一个重复的问题,而是关于世界各地周末日的问题,而不是一周的第一天。在某种程度上它是相关的,但这是一个不同的事情。 - Paweł Dyda
谢谢你们什么都没做,Gilles、Cody、Gred、Magnus、Hans。另一个类似的问题没有答案。虽然这个问题已经有了答案,但是它的答案是“不,.NET没有这个功能”。我不是在问如何实现它,我只是想知道它是否已经被实现了。 - Ian Boyd
1个回答

3
这是一个非常有趣的问题,答案似乎是否定的,.Net中没有这样的功能。当然,您可以使用DateTimeFormatInfoFirstDayOfWeek属性,但它还不够好。它只会告诉您前一天很可能是周末。然而,这并不是很有帮助(其他那一天呢...),因为有些国家只有一天周末。此外,在穆斯林国家,他们通常将星期五作为周末,但是...其中一些国家也有星期四、星期六,我确信我听说过有国家星期五和星期日放假。在这种情况下,谈论周末会相当困难...
我查看了CLDR Charts,但是没有找到合适的信息。看来你需要自己解决问题。
理论上,你可以考虑使用ICUCalendar class,它有一个isWeekend()方法,但是为了只使用其中一个类而导入dll听起来很糟糕。

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