Foxtable(狐表)用户栏目专家坐堂 → 工龄计算错误


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

主题:工龄计算错误

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
工龄计算错误  发帖心情 Post By:2019/1/11 13:22:00 [只看该作者]

If e.DataCol.name ="入职日期"
        If e.DataRow.IsNull("入职日期") Then
            e.DataRow("工龄年") = Nothing
            e.DataRow("工龄月") = Nothing
            e.DataRow("工龄日") = Nothing
        Else
            Dim y,m,d As Integer
            DateYMD(e.DataRow("入职日期"),Date.Today,y,m,d)
            e.DataRow("工龄年") = y
            e.DataRow("工龄月") = m
            e.DataRow("工龄日") = d
        End If
End If

上面的代码,如果我今天输入某人的入职日期为2019年2月13日,那么,其工龄年、月、日分别显示0、1、2。这是错误的。应该是0、-1、-2才对。要怎么修改代码呢?谢谢。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/11 15:17:00 [只看该作者]

 

[此贴子已经被作者于2019/1/11 15:17:24编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/11 15:19:00 [只看该作者]

Dim y,m,d As Integer
Dim dt1 As Date = "2019年1月1日"
Dim dt2 As Date = Date.Today
DateYMD(dt1,dt2,y,m,d)
If dt1 > dt2 Then
    msgbox(y & "年" & m & "月" & d & "日")
Else
    msgbox(-y & "年" & -m & "月" & -d & "日")
End If

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/1/11 16:05:00 [只看该作者]

If e.DataCol.name ="入职日期"
        If e.DataRow.IsNull("入职日期") Then
            e.DataRow("工龄年") = Nothing
            e.DataRow("工龄月") = Nothing
            e.DataRow("工龄日") = Nothing
        Else
            Dim y,m,d As Integer
            Dim dt1 As Date = e.DataRow("入职日期")
            Dim dt2 As Date = Date.Today
            DateYMD(dt1,dt2,y,m,d)
            If dt1 > dt2 Then
                e.DataRow("工龄年") = -y
                e.DataRow("工龄月") = -m
                e.DataRow("工龄日") = -d
            else
                e.DataRow("工龄年") = y
                e.DataRow("工龄月") = m
                e.DataRow("工龄日") = d
            end if
        End If
End If

我写成上面那样了。也有小。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2019/1/11 16:09:00 [只看该作者]

            If dt1 < dt2 Then
                e.DataRow("工龄年") = -y
                e.DataRow("工龄月") = -m
                e.DataRow("工龄日") = -d
            else
                e.DataRow("工龄年") = y
                e.DataRow("工龄月") = m
                e.DataRow("工龄日") = d
            end if

 回到顶部