一周的自定义开始日和结束日的逻辑。 (C#)

时间:2010-09-21 18:09:30

标签: c#

我们有一个独特的要求,我们有一周的开始日和一周的结束日(C#),

与现有的Date Time类相反,其开始日为星期日,结束日为星期六,我们将星期三作为我们的开始日,星期二是我们的结束日(这将因客户而异)。

我们需要实现以下逻辑

a)对于给定日期,获取一周的开始日期和结束一周的日期

例如:基于上述情况,如果当天是2010年9月23日(星期四),我们需要将2010年9月22日(周三)作为我们的开始日和2010年9月28日(星期二)作为我们的结束天

我很抱歉有一个更正结束日应该是星期二(每周7天)

有人可以帮忙吗?

由于

2 个答案:

答案 0 :(得分:5)

你能不能做到

(dt.DayOfWeek + delta) % 7

答案 1 :(得分:1)

这是我对它的不妥协的解决方案:

public static void CalculateWeek (out DateTime WeekStart, out DateTime WeekEnd, DateTime InputDate)
    {
        DateTime tempDT = InputDate;

        while (tempDT.DayOfWeek != DayOfWeek.Wednesday)
        {
            tempDT = tempDT.AddDays(-1);
        }

        WeekStart = tempDT.Date;

        while (tempDT.DayOfWeek != DayOfWeek.Tuesday)
        {
            tempDT = tempDT.AddDays(1);
        }

        WeekEnd = tempDT.Date;
    }

绝不聪明或超级高效,虽然循环迭代次数不会超过7次。