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

如何计算指定月份的首个周一或对应上月最后一个周一

给定月份首个周一计算规则及VB实现

计算规则

需求为计算给定月份对应的首个周一,若符合规则时该周一为上月最后一个周一也需正确返回,具体判断逻辑如下:

  • 当月首日为周一至周三时,首个周一为当周的周一
  • 当月首日为周四至周日时,首个周一为下一周的周一

验证示例

  • 2021年8月:当月首日为周日(晚于周三),首个周一为2021年8月2日
  • 2021年9月:当月首日为周三,首个周一为2021年8月30日
  • 2021年10月:当月首日为周五,首个周一为2021年10月4日

VB实现代码

Public Function FirstMonday(myDate As Date) As Date
    Dim d As Date, w As Long
    d = DateSerial(Year(myDate), month(myDate), 1)
    w = Weekday(d, vbMonday)
    FirstMonday = d + IIf(w <> 1, 8 - w, 0)
End Function

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:27:04