C# 如何在当前日期后3天返回,而不应是周末

C# 如何在当前日期后3天返回,而不应是周末,c#,C#,我怎样才能在当前日期后3天内不在周末(周六/周日)休息 假设我选择日期为2017年3月28日。它应显示日期为2017年3月23日。这不应该需要sat/sun dto.ProcessEndDate.AddDays(-3); 此代码假设如果新日期落在周末,它将返回前一个星期五 public static DateTime GetDateExcludeWeekends(DateTime date, int index) { var newDate = date.AddDays(-index)

我怎样才能在当前日期后3天内不在周末(周六/周日)休息

假设我选择日期为2017年3月28日。它应显示日期为2017年3月23日。这不应该需要sat/sun

dto.ProcessEndDate.AddDays(-3);

此代码假设如果新日期落在周末,它将返回前一个星期五

public static DateTime GetDateExcludeWeekends(DateTime date, int index)
{
    var newDate = date.AddDays(-index);

    if(newDate.DayOfWeek == DayOfWeek.Sunday)
    {
        return newDate.AddDays(-2);
    }

    if(newDate.DayOfWeek == DayOfWeek.Saturday)
    {
        return newDate.AddDays(-1);
    }

    return DateTime.Now;
}

您可以调整逻辑,但主要是查看
DateTime
类的
DayOfWeek
enum属性。

不应显示2017年3月24日(星期五),25日是星期六?是的,问题不清楚。假设你说从2017年3月28日起七天内返回。是否应该是2017年3月21日,因为2017年3月21日不是周末?或者应该是2017年3月17日,因为这是2017年3月21日之前的7个工作日?如果你说“回到零天”,但今天是星期六;那是星期六还是前一个星期五?写一个清晰的规范来描述所有可能的输入和期望的输出,你会发现编写一个程序非常容易。