.net 取时间差 去除周末以及非工作时间
时间: 2023-08-15 11:03:14 浏览: 129
你可以使用 C# 中的 DateTime 和 TimeSpan 类来计算时间差。以下是一个示例代码:
```csharp
DateTime start = new DateTime(2021, 7, 1, 9, 0, 0); // 开始时间
DateTime end = new DateTime(2021, 7, 10, 17, 0, 0); // 结束时间
TimeSpan duration = end - start; // 时间差
int workingDays = 0;
for (DateTime date = start; date <= end; date = date.AddDays(1))
{
if (date.DayOfWeek != DayOfWeek.Saturday && date.DayOfWeek != DayOfWeek.Sunday)
{
// 判断是否为工作日
TimeSpan workStart = new DateTime(date.Year, date.Month, date.Day, 9, 0, 0).TimeOfDay; // 上班时间
TimeSpan workEnd = new DateTime(date.Year, date.Month, date.Day, 17, 0, 0).TimeOfDay; // 下班时间
TimeSpan diff = workEnd - workStart; // 工作时间
if (duration >= diff)
{
workingDays++;
duration -= diff;
}
else
{
break;
}
}
}
// 输出结果
Console.WriteLine("总共用时: {0}", end - start);
Console.WriteLine("去除周末和非工作时间后用时: {0},工作日数: {1}天", duration, workingDays);
```
这段代码会计算从 2021 年 7 月 1 日 9 点到 2021 年 7 月 10 日 17 点的时间差,并去除周末以及非工作时间。在这个示例中,工作时间为每天的 9 点到 17 点。最后输出的结果包括总共用时和去除周末和非工作时间后的用时和工作日数。
阅读全文