如何在 C# 中获取下周一或下周五的日期。假设今天是星期三,我想知道星期五的日期。这就是我所做的
DateTime time = DateTime.Now.Date;
DateTime NextFriday;
if (time.DayOfWeek == DayOfWeek.Wednesday)
{
NextFriday = DateTime.Now.AddDays(2);
}
Run Code Online (Sandbox Code Playgroud)
通过这种方法,我必须为每天启动 7 个变量,并为每天启动 7 个条件,以找到下一个特定日期。
有没有更好、更干净的代码,我可以通过它来获取下一天的日期。
使用以下内容
public int CalculateOffset(DayOfWeek current, DayOfWeek desired) {
// f( c, d ) = [7 - (c - d)] mod 7
// f( c, d ) = [7 - c + d] mod 7
// c is current day of week and 0 <= c < 7
// d is desired day of the week and 0 <= d < 7
int c = (int)current;
int d = (int)desired;
int offset = (7 - c + d) % 7;
return offset == 0 ? 7 : offset;
}
Run Code Online (Sandbox Code Playgroud)
您可以计算距离所需日期还有多远,然后将其添加到当前日期
DateTime now = DateTime.Now.Date;
int offset = CalculateOffset(now.DayOfWeek, DayOfWeek.Friday);
DateTime nextFriday = now.AddDays(offset);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4469 次 |
| 最近记录: |