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

求助:DateTimePicker添加天数(含工作日)计算逻辑错误问题

解决DateTimePicker工作日计算错误的问题

嘿,我明白你现在遇到的困扰了——手动判断星期数来计算工作日不仅容易遗漏情况(比如你代码里只处理了周一、周二,其他星期几没覆盖),还会让代码变得冗余且容易出错。咱们来用更可靠的方式解决这两个需求:

1. 第二个DateTimePicker:直接添加3天

这个需求其实很简单,不用复杂的判断,直接用AddDays()方法就能搞定,不管起始日期是周几,加3天的结果都是准确的:

DateTimePicker2.Value = DateTimePicker1.Value.AddDays(3)

2. 第三个DateTimePicker:添加5个工作日

手动枚举星期几的方式太容易出错了,咱们写一个通用的工具函数来计算工作日,自动跳过周六和周日:

' 通用函数:给指定日期添加N个工作日
Private Function AddWorkdays(startDate As DateTime, workdaysToAdd As Integer) As DateTime
    Dim currentDate As DateTime = startDate
    Dim daysAdded As Integer = 0
    
    While daysAdded < workdaysToAdd
        ' 每次向前推进一天
        currentDate = currentDate.AddDays(1)
        ' 判断当前日期是否为工作日(排除周六、周日)
        If currentDate.DayOfWeek <> DayOfWeek.Saturday AndAlso currentDate.DayOfWeek <> DayOfWeek.Sunday Then
            daysAdded += 1
        End If
    End While
    
    Return currentDate
End Function

然后在你的Calculatedelivery方法里调用这个函数就可以了:

Private Sub Calculatedelivery()
    ' 处理第二个日期:直接加3天
    DateTimePicker2.Value = DateTimePicker1.Value.AddDays(3)
    
    ' 处理第三个日期:加5个工作日
    DateTimePicker3.Value = AddWorkdays(DateTimePicker1.Value, 5)
End Sub

为什么这个方法更可靠?

  • 自动覆盖所有星期几的情况,不会出现你之前代码里遗漏周三到周日的问题
  • 代码简洁易维护,要是以后需要调整工作日数量(比如改成加7个),只需要修改参数即可
  • 扩展性强,要是后续需要支持节假日,只需要在函数里添加判断节假日的逻辑,不用大改现有代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:07:43