以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  工龄计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190661)

--  作者:longyanlin
--  发布时间:2024/2/27 21:37:00
--  工龄计算
帮助里面的工龄计算是某个日期到今天的,如果改成是入职日期到离职日期两个日期的计算,请问代码怎么样改谢谢!
Select Case e.DataCol.name
    Case "入职日期"
        If e.DataRow.IsNull("入职日期") Then
            e.DataRow("工龄_年") = Nothing
            e.DataRow("工龄_月") = Nothing
            e.DataRow("工龄_天") = Nothing
        Else
            Dim y,m,d As Integer
            DateYMD(e.DataRow("入职日期"),("离职日期"),y,m,d)
            e.DataRow("工龄_年") = y
            e.DataRow("工龄_月") = m
            e.DataRow("工龄_天") = d
        End If
End Select

--  作者:有点蓝
--  发布时间:2024/2/27 21:56:00
--  
DateYMD(e.DataRow("入职日期"),e.DataRow("离职日期"),y,m,d)
--  作者:longyanlin
--  发布时间:2024/3/2 14:40:00
--  
可以了,谢谢蓝老师,另外如果反过来呢,输入“开始日期”和“期限_年,期限_月,期限_日”,怎样计算出“结束日期”,这样的精准计算请问怎样写代码,谢谢老师。
--  作者:有点蓝
--  发布时间:2024/3/2 14:50:00
--  
http://www.foxtable.com/webhelp/topics/1337.htm

dim d as date = e.DataRow("开始日期")

dim 结束日期 as date = d.AddYears(e.DataRow("期限_年")).AddMonths(e.DataRow("期限_")).......

--  作者:longyanlin
--  发布时间:2024/3/2 16:10:00
--  
写了好久都不成功,蓝老师可以把代码放出来吗,谢谢




--  作者:有点蓝
--  发布时间:2024/3/2 17:27:00
--  
Select Case e.DataCol.name
    Case "开始日期","期限_年","期限_月","期限_日"
        If e.DataRow.IsNull("开始日期") then
            e.DataRow("结束日期") = Nothing
        Else
dim d as date = e.DataRow("开始日期")
            if e.DataRow.IsNull("期限_年")=false
d =d.AddYears(e.DataRow("期限_年"))
end if
            if e.DataRow.IsNull("期限_月")=false
d =d.Addmonths(e.DataRow("期限_月"))
end if
            if e.DataRow.IsNull("期限_日")=false
d =d.Adddays(e.DataRow("期限_日"))
end if
e.DataRow("结束日期") = d
        End If
End Select