以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]筛选出未来七天内生日的员工代码求解 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=154271) |
-- 作者:hailang59 -- 发布时间:2020/9/9 18:16:00 -- [求助]筛选出未来七天内生日的员工代码求解 老师,关于筛选出未来七天内生日的员工事例里面这代表达式dt1 >= Date.Today AndAlso dt1 < Date.Today.AddDays(n)) OrElse (dt2 >= Date.Today AndAlso dt2 < Date.Today.AddDays(n)是表示什么意思,dt1我能够看得明白,但是始终不明白dt2表达式里面的意思,求解 [此贴子已经被作者于2020/9/9 23:09:36编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/9/10 8:36:00 -- dt1大于今天,小于第7天。先把编程基础学学http://www.foxtable.com/webhelp/topics/1592.htm |
-- 作者:hailang59 -- 发布时间:2020/9/10 8:59:00 -- 编程基础和事件编程我已经学完了,也反复看视频和帮助很多遍了,上面列举的例子我基本上都能够看得懂,只是在这个例子上我有点看不明白,因为dt1 >= Date.Today AndAlso dt1 < Date.Today.AddDays(n)这个表达式已经筛选出了大于等于今天而小于未来6天的员工生日,为什么还要加一个dt2 >= Date.Today AndAlso dt2 < Date.Today.AddDays(n)表达式呢,这个表达式又是筛选什么日期的呢,如果是要筛选未来7天的日期,我直接把n设为7不就可以了么,用dt1 >= Date.Today AndAlso dt1 < Date.Today.AddDays(n)这个表达式不就能够筛选出来未生7天生日的员工了么?我主要是在这个逻辑上没有想明白 |
-- 作者:有点蓝 -- 发布时间:2020/9/10 9:37:00 -- 这段代码是从哪来的?没有上下文我也不知道为什么 |
-- 作者:hailang59 -- 发布时间:2020/9/10 10:42:00 -- 如果希望筛选出未来七天内生日的员工,代码为: Dim nms As String Dim n As Integer = 6 \'未来天数,含今天,所以实际是未来7天 For Each dr As DataRow In DataTables("员工").DataRows Dim dt As Date = dr("出生日期") Dim dt1 As New Date(Date.Today.Year,dt.Month,dt.Day) Dim dt2 As New Date(Date.Today.AddDays(n).Year,dt.Month,dt.Day) If (dt1 >= Date.Today AndAlso dt1 < Date.Today.AddDays(n)) OrElse (dt2 >= Date.Today AndAlso dt2 < Date.Today.AddDays(n)) Then nms = nms & ",\'" & dr("姓名") & "\'" End If Next If nms > "" Then nms = nms.Trim(",") Tables("员工").filter = "[姓名] In (" & nms &")" End If 就是这一段代码
|
-- 作者:有点蓝 -- 发布时间:2020/9/10 11:10:00 -- 主要是考虑到跨年的情况,比如今天是2020-12-31日,那么符合条件的时间段应该是2020-12-31~2021-1-6。dt1的年份只能取得2020,dt2的年份才是2021 |
-- 作者:hailang59 -- 发布时间:2020/9/10 14:41:00 -- 哦,明白了,是加入了年份的判断,谢谢版主! |