Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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# 支票星期日介于两个日期之间_C#_Asp.net - Fatal编程技术网

C# 支票星期日介于两个日期之间

C# 支票星期日介于两个日期之间,c#,asp.net,C#,Asp.net,如何确定星期日是否在两个日期之间。如果存在星期日,则从两天之间的差值中减去一天如果我理解正确,则您正在寻找以下内容: public static bool DoesIncludeSunday(DateTime startDate, DateTime endDate) { bool r = false; TimeSpan testSpan = new TimeSpan(6, 0, 0, 0); TimeSpan actualSpan =endDate - startDate

如何确定星期日是否在两个日期之间。如果存在星期日,则从两天之间的差值中减去一天

如果我理解正确,则您正在寻找以下内容:

public static bool DoesIncludeSunday(DateTime startDate, DateTime endDate)
{
    bool r = false;
    TimeSpan testSpan = new TimeSpan(6, 0, 0, 0);
    TimeSpan actualSpan =endDate - startDate;

    if (actualSpan >= testSpan) { r = true; }
    else
    {
        DateTime checkDate = endDate;
        while (checkDate > startDate)
        {
            r = (checkDate.DayOfWeek == DayOfWeek.Sunday);
            if(r) { break; }
            checkDate = checkDate.AddDays(-1);
        }
    }

    return r;
}
endDate必须是最近的日期。第一部分只是让我们不必检查开始和结束日期之间的间隔是否超过6天,它将包括一个星期日,因此无需继续。第二位只是从结束日期开始一天一天地向后走,检查是否有星期天


一旦你知道星期天是否是跨度的一部分,你就可以根据调用代码对日期进行任何更改。

正是因为我喜欢聪明,我这样写的:

public static int DaysExcludingSundays(DateTime start, DateTime end)
{
 return ((end - start).Days + 1) - ((((end - start).Days + 1) + (((int)start.DayOfWeek + 6) % 7)) / 7);
}
请随意复制和粘贴此代码,而不必理解它的含义。我喜欢这个拼图

细分:

int startOffset = ((int) start.DayOfWeek + 6) % 7;  
int totalInclusiveDays = (end - start).Days + 1;  
int numberOfSundays = (totalInclusiveDays + startOffset) / 7;  
int numberOfDaysWithoutSundays = totalInclusiveDays - numberOfSundays; 

你能再具体一点吗。哪个星期天,哪个日期?@Ranjana:你问了12个问题,没有接受任何答案,也没有对任何事情进行过投票。这里的交易是:你得到答案,提供答案的用户获得声誉。。请尽你的责任。谢谢大家!-你是在问问题还是在布置任务?