首页 > 后端开发 > C++ > 如何在 .NET 中计算下一个工作日的日期?

如何在 .NET 中计算下一个工作日的日期?

Patricia Arquette
发布: 2024-12-30 22:55:10
原创
571 人浏览过

How Can I Calculate the Date of the Next Weekday in .NET?

在 .NET 中确定即将到来的工作日的日期

“下一个工作日”的概念可能不明确,因为它取决于本周的当前日期。以下是使用 .NET 库在 C# 中解决此问题的几种方法:

“下周二发生,如果已经是星期二则为今天”

此方法返回最近的星期二,即今天或未来的日期:

DateTime today = DateTime.Today;
int daysUntilTuesday = ((int)DayOfWeek.Tuesday - (int)today.DayOfWeek + 7) % 7;
DateTime nextTuesday = today.AddDays(daysUntilTuesday);
登录后复制

"A从现在开始的一周时间,即使已经是星期二”

此方法返回下一个星期二,但如果已经是星期二,则跳过一周:

int daysUntilTuesday = (((int)DayOfWeek.Monday - (int)today.DayOfWeek + 7) % 7) + 1;
登录后复制

“明天或下周二发生,或明天(如果是)星期二”

此方法返回下一个星期二,但从明天开始,以避免额外一周的延迟:

DateTime tomorrow = DateTime.Today.AddDays(1);
int daysUntilTuesday = ((int)DayOfWeek.Tuesday - (int)tomorrow.DayOfWeek + 7) % 7;
DateTime nextTuesday = tomorrow.AddDays(daysUntilTuesday);
登录后复制

适用于任何工作日的多功能方法

要处理任何工作日,请创建一个通用方法 GetNextWeekday,它将 DateTime 和 DayOfWeek 作为输入:

public static DateTime GetNextWeekday(DateTime start, DayOfWeek day)
{
    int daysToAdd = ((int) day - (int) start.DayOfWeek + 7) % 7;
    return start.AddDays(daysToAdd);
}
登录后复制

使用示例

  • 今天或未来 6 天内:
DateTime nextTuesday = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday);
登录后复制
  • 下周二,不包括今天:
DateTime nextTuesday = GetNextWeekday(DateTime.Today.AddDays(1), DayOfWeek.Tuesday);
登录后复制

以上是如何在 .NET 中计算下一个工作日的日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板