【发布时间】:2019-11-08 16:53:34
【问题描述】:
我有两个字段 startdate 和 enddate ,我需要计算这两个日期之间有多少个周末并以分钟为单位显示。例如,开始日期为 01/11/2019 00:00:00,结束日期为 03/11/2019 12:00:00,我应该在给定日期之间将周六和部分周日作为周末 1.5 天的输出
我尝试了以下代码,它没有计算给定场景的周末时间
public int CountOfWeekEnds(DateTime startDate, DateTime endDate)
{
int weekEndCount = 0;
if (startDate > endDate)
{
DateTime temp = startDate;
startDate = endDate;
endDate = temp;
}
TimeSpan diff = endDate - startDate;
int days = diff.Days;
for (var i = 0; i <= days; i++)
{
var testDate = startDate.AddDays(i);
if (testDate.DayOfWeek == DayOfWeek.Saturday || testDate.DayOfWeek == DayOfWeek.Sunday)
{
if (testDate.Minute > 0)
{
weekEndCount += 1;
}
}
}
return weekEndCount;
}
将输出显示为周末的 2 天,而不是日期之间的 1.5 天。请建议我如何实现这一目标
【问题讨论】:
-
.AddDays不会更改TimeOfDay,因此testDate.Minute将始终与startDate.Minute相同。 -
另外,你的方法返回一个
int,所以它永远不会返回像1.5这样的十进制值
标签: c#