VB.NET中实现修改当前日期选择器时自动同步上年同期日期
VB.NET实现日期选择器同步上年同期日期
需求说明
从Access迁移至VB.NET开发报表,需要实现:修改当前时间段的日期时,历史时间段自动同步为上年同期日期。例如:
- 默认当前日期为2022年12月1日,历史日期自动设为2021年12月1日
- 当当前日期改为2022年11月1日时,历史日期自动更新为2021年11月1日
原代码问题分析
你尝试的代码存在两处语法问题:
- VB.NET中日期间隔枚举应为
DateInterval.Year,而非timeinterval.year - 需要获取DateTimePicker控件的
.Value属性值,不能直接传入控件对象
修正后的代码
Private Sub DTPCurrentPeriod_ValueChanged(sender As Object, e As EventArgs) Handles DTPCurrentPeriod.ValueChanged ' 同步上年同期日期 DTPPreviousPeriod.Value = DateAdd(DateInterval.Year, -1, DTPCurrentPeriod.Value) chkBetweenDatesFrom.Checked = True UpdateTitle() End Sub
补充说明
- 代码会在
DTPCurrentPeriod的值变更时自动触发,将DTPPreviousPeriod设置为上年同期日期 - 针对闰年2月29日的特殊情况,
DateAdd会自动调整为对应年份的2月最后一天(如2024-02-29会转为2023-02-28)
内容的提问来源于stack exchange,提问作者Kefel
相关产品推荐
相关产品推荐

