Foxtable(狐表)用户栏目专家坐堂 → [求助]筛选出未来七天内生日的员工代码求解


  共有2169人关注过本帖树形打印复制链接

主题:[求助]筛选出未来七天内生日的员工代码求解

帅哥哟,离线,有人找我吗?
hailang59
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:14 积分:251 威望:0 精华:0 注册:2018/4/20 17:54:00
[求助]筛选出未来七天内生日的员工代码求解  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106601 积分:542176 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/10 8:36:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
hailang59
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:14 积分:251 威望:0 精华:0 注册:2018/4/20 17:54:00
  发帖心情 Post By: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天生日的员工了么?我主要是在这个逻辑上没有想明白

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106601 积分:542176 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/10 9:37:00 [只看该作者]

这段代码是从哪来的?没有上下文我也不知道为什么

 回到顶部
帅哥哟,离线,有人找我吗?
hailang59
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:14 积分:251 威望:0 精华:0 注册:2018/4/20 17:54:00
  发帖心情 Post By: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


就是这一段代码

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106601 积分:542176 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/10 11:10:00 [只看该作者]

主要是考虑到跨年的情况,比如今天是2020-12-31日,那么符合条件的时间段应该是2020-12-31~2021-1-6。dt1的年份只能取得2020,dt2的年份才是2021

 回到顶部
帅哥哟,离线,有人找我吗?
hailang59
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:14 积分:251 威望:0 精华:0 注册:2018/4/20 17:54:00
  发帖心情 Post By:2020/9/10 14:41:00 [只看该作者]

哦,明白了,是加入了年份的判断,谢谢版主!

 回到顶部