在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,给定的链接只会消除周末。但是我还没有得到解决方案。
答案 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 link或This link以获取更多信息和选项。
也是Calculate the number of business days between two dates? 的副本,它有一个很好的LINQ方法由Alpha
为了获得更好的性能和可读性,您可以实现that。