我需要找到2个优雅的完整实现
public static DateTime AddBusinessDays(this DateTime date, int days)
{
// code here
}
and
public static int GetBusinessDays(this DateTime start, DateTime end)
{
// code here
}
Run Code Online (Sandbox Code Playgroud)
O(1)优选(无环).
编辑:工作日我指的是工作日(周一,周二,周三,周四,周五).没有假期,只是周末排除在外.
我已经有一些似乎有效的丑陋解决方案,但我想知道是否有优雅的方法来做到这一点.谢谢
这就是我到目前为止所写的内容.它适用于所有情况,也会产生负面影响.仍然需要GetBusinessDays实现
public static DateTime AddBusinessDays(this DateTime startDate,
int businessDays)
{
int direction = Math.Sign(businessDays);
if(direction == 1)
{
if(startDate.DayOfWeek == DayOfWeek.Saturday)
{
startDate = startDate.AddDays(2);
businessDays = businessDays - 1;
}
else if(startDate.DayOfWeek == DayOfWeek.Sunday)
{
startDate = startDate.AddDays(1);
businessDays = businessDays - 1;
}
}
else
{
if(startDate.DayOfWeek …
Run Code Online (Sandbox Code Playgroud) 所以,这是一个有趣的小编程挑战.我正在写一个快速的方法来确定特定年份的所有市场假期,然后我开始阅读有关复活节的信息,并发现了确定其日期的逻辑是多么疯狂 - 春天之后的逾越节满月后的第一个星期日春分!有人知道现有的函数来计算给定年份的复活节日期吗?
当然,这可能并不那么难; 我想我会问,以防有人已经这样做了.(这似乎很有可能.)
更新:实际上,我真的在寻找耶稣受难日(复活节前的星期五)的日期......我只是觉得复活节会让我在那里.既然我在美国,我认为我正在寻找天主教复活节?但如果我错了,也许有人可以纠正我.
*通过"疯狂"我的意思,就像,参与.没有任何令人反感的......