如何从startDate和endDate datetime对象中排除星期六和星期日

时间:2018-02-02 12:29:13

标签: c# datetime

在c#中开发。我有两个DateTime对象。我必须从星期数中消除周六和周日。假设我有5天,包括周六和周日。我想查看星期六星期天的日子,减少天数。

 DateTime startDate = DateTime.ParseExact(startDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
 DateTime endDate = DateTime.ParseExact(endDate.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
 TimeSpan diff = endDate - startDate;
 days = diff.Days;

我试过了,

How can I calculate the Number of Weekends between two dates

但我无法消除周六周日,因为如果日期差异大于7,给定的链接只会消除周末。但是我还没有得到解决方案。

2 个答案:

答案 0 :(得分:0)

如何在两个日期之间进行简单循环,并使用DayOfWeek检查日期是星期六还是星期日?

下面的内容应该有效:

int weekendDays = 0;

for(DateTime date = startDate; date.Date <= endDate.Date; date = date.AddDays(1))
{
    if ((date.DayOfWeek == DayOfWeek.Saturday) || (date.DayOfWeek == DayOfWeek.Sunday))
    {
        weekendDays++;
    }
}

答案 1 :(得分:0)

你冷漠使用以下内容:

int daycount = 0;
while (startDate < endDate) 
{
    startDate = startDate.AddDays(1);
    int DayNumInWeek = (int)startDate.DayOfWeek;
    if (DayNumInWeek != 0 && DayNumInWeek != 6)
         daycount += 1;       
}

检查This linkThis link以获取更多信息和选项。

也是Calculate the number of business days between two dates? 的副本,它有一个很好的LINQ方法由Alpha

为了获得更好的性能和可读性,您可以实现that