以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于日期时间的计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=16083)

--  作者:蒋仁义
--  发布时间:2012/2/2 1:30:00
--  [求助]关于日期时间的计算
我要计算工龄,如:2012年1月1日,入职时间是2000年3月1日,工龄是11年,这个表达式如何写。我的表其中有两个列,一列是入职时间,一列是当月时间,工龄要求精确到月,最好精确到日,然后取整数。
[此贴子已经被作者于2012-2-2 12:15:22编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/2/2 12:35:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目267.table


--  作者:idoican
--  发布时间:2012/2/2 13:36:00
--  
顺便学习一下,看明白了。图片点击可在新窗口打开查看
--  作者:蒋仁义
--  发布时间:2012/2/2 16:40:00
--  回复:(狐狸爸爸)[upload=table,管理项目267.table]...

谢谢你很快有了回复

我刚接触此表,是个菜鸟,我以为用表达式就行了,你发过来的我看不懂,不知你从那里编写的程进去,只在代码输出那看到。

我要求不是用系统时间减去入职时间,而是用指定的一个时间减入职时间得出的工龄。


--  作者:狐狸爸爸
--  发布时间:2012/2/2 16:42:00
--  

一样简单的,如果初次结束,还不知道在什么地方写代码,建议你先不管要管这样的问题,先看帮助,首先看《使用指南》,看两三遍之后,再看《开发指南》,到时你会知道,这样的问题其实很简单。


--  作者:蒋仁义
--  发布时间:2012/2/11 1:16:00
--  [原创]我这样也的也通过了
Select Case e.DataCol.name
    Case "入职日期"
        If e.DataRow.IsNull("入职日期") Then
            e.DataRow("工龄") = Nothing
        Else
            Dim dt As Date = e.DataRow("入职日期")
            Dim ct As Date = e.DataRow("日期")
            Dim y As Integer = e.DataRow("日期").Year - dt.Year
            If(ct.Month>dt.Month)
                e.DataRow("工龄") = y
                Return
            End If
            If(ct.Month < dt.Month)
            y=y-1
            Else If(ct.Day < dt.Day)
            y=y-1
           
    End If
    e.DataRow("工龄") = y
End If
End Select

--  作者:蒋仁义
--  发布时间:2012/2/11 1:19:00
--  
认真的看了三天才看懂