Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL-几天前获取日期(周六和周日除外)_C#_Sql Server - Fatal编程技术网

C# SQL-几天前获取日期(周六和周日除外)

C# SQL-几天前获取日期(周六和周日除外),c#,sql-server,C#,Sql Server,我想从2017年10月20日起7天前获得日期,周末除外。如果2017年10月20日是星期五,则7天前表示2017年10月11日。这个问题的答案是什么 预期的结果是: 2017-10-19 2017-10-18 2017-10-17 2017-10-16 2017-10-13 2017-10-12 2017-10-11 您可以尝试检查所需期间的排除天数。 例如,我们需要从今天到7天前的一天。 X(确定日期)=Y(现在日期)-Z(7天,前一时期)。 然后我们尝试逐日检查这个周期Z[从12/10到1

我想从2017年10月20日起7天前获得日期,周末除外。如果2017年10月20日是星期五,则7天前表示2017年10月11日。这个问题的答案是什么

预期的结果是:

2017-10-19
2017-10-18
2017-10-17
2017-10-16
2017-10-13
2017-10-12
2017-10-11

您可以尝试检查所需期间的排除天数。 例如,我们需要从今天到7天前的一天。 X(确定日期)=Y(现在日期)-Z(7天,前一时期)。 然后我们尝试逐日检查这个周期Z[从12/10到19/10]。结果,我们找到了2天,并从Y天开始减少

对于linq I,我们可以编写以下函数:

    private DateTime GetBeforeDateExcludeWeekends(DateTime FromDate, int Period)
    {
        DateTime tillBeforeDate = FromDate.Subtract(TimeSpan.FromDays(Period));

        var weekendDayCnt = 
            Enumerable.Range(0, (FromDate - tillBeforeDate).Days + 1).Select(d => tillBeforeDate.AddDays(d))
            .Where(day => day.DayOfWeek == DayOfWeek.Saturday || day.DayOfWeek == DayOfWeek.Sunday)
            .Count();

        return FromDate.Subtract(TimeSpan.FromDays(Period + weekendDayCnt));
    }

对不起,我的英语不好

请让我们看看你自己累了什么。。这不是代码服务提供商站点…请检查
DateTime.AddDays
方法和
DateTime.DayOfWeek
属性。有了它和循环,您应该能够生成所需的结果。