以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 工龄计算错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130028) |
-- 作者:edisontsui -- 发布时间: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才对。要怎么修改代码呢?谢谢。
|
-- 作者:有点甜 -- 发布时间:2019/1/11 15:17:00 --
[此贴子已经被作者于2019/1/11 15:17:24编辑过]
|
-- 作者:有点甜 -- 发布时间: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 -- 发布时间: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 我写成上面那样了。也有小。
|
-- 作者:有点色 -- 发布时间: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
|