You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取以周六为起始周五为结束的本周及上周首尾日期?

获取以周六为起始、周五为结束的本周及上周日期

首先明确.NET中DayOfWeek的枚举规则:Sunday = 0、Monday = 1……Saturday = 6。我们需要基于这个规则调整日期偏移量,来得到周六起始、周五结束的周范围。

正确实现代码

// 获取今日日期(仅日期部分)
DateTime today = DateTime.Today.Date;

// 本周:周六(起始)到周五(结束)
// 计算距离本周六的偏移:如果今天是周六,偏移0天;否则偏移 -(当前星期几 + 1) 天
int daysToThisWeekSaturday = (int)today.DayOfWeek == 6 ? 0 : -( (int)today.DayOfWeek + 1 );
DateTime thisWeekStart = today.AddDays(daysToThisWeekSaturday);
DateTime thisWeekEnd = thisWeekStart.AddDays(6); // 周六加6天就是周五

// 上周:周六(起始)到周五(结束)
DateTime lastWeekStart = thisWeekStart.AddDays(-7);
DateTime lastWeekEnd = lastWeekStart.AddDays(6);

逻辑说明

  • 本周起始:通过判断当前星期几,计算回退到最近的周六的天数。例如:
    • 若今天是周日(DayOfWeek=0),回退1天到周六;
    • 若今天是周五(DayOfWeek=5),回退6天到周六;
    • 若今天本身是周六,直接取今日作为起始。
  • 本周结束:起始日期加6天,正好是本周的周五。
  • 上周范围:直接在本周起始的基础上减7天得到上周六,再加6天得到上周五。

内容的提问来源于stack exchange,提问作者Hussein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 16:07:05