以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]工龄如何计算到年月  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21787)

--  作者:童年
--  发布时间:2012/7/24 17:41:00
--  [求助]工龄如何计算到年月

现在根据参加工作时间只能将工龄计算到年,代码是

 

If e.DataCol.Name = "参加工作时间" Then
    If e.DataRow.IsNull("参加工作时间") Then \'如果没有输入参加工作时间
        e.DataRow("工龄") = Nothing \'则清空工龄
    Else
        \'否则计算工龄
        e.DataRow("工龄") = Date.Today.Year - e.DataRow("参加工作时间").Year
    End If
End If


 

请问如何实际工龄为 *年*月

[此贴子已经被作者于2012-7-24 17:40:45编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/7/24 17:46:00
--  
什么是“计算到年月”?
--  作者:童年
--  发布时间:2012/7/24 18:06:00
--  

比如参加工作时间是2012年1月18日,那他的工龄应该是0年6月,而不是1年。

 


--  作者:don
--  发布时间:2012/7/24 18:17:00
--  
以下是引用muhua在2012-7-24 18:10:00的发言:

e.DataRow("工龄") = Date.Today.Year - e.DataRow("参加工作时间").Year

 

改为: e.DataRow("工龄") = Date.Today.Year - e.DataRow("参加工作时间").Year & "年" & Date.Today.Month - e.DataRow("参加工作时间").Month & "月"


這樣肯定不行,我發過有個計算年月日的,搜索搜索.


--  作者:童年
--  发布时间:2012/7/24 18:18:00
--  
以下是引用muhua在2012-7-24 18:10:00的发言:

e.DataRow("工龄") = Date.Today.Year - e.DataRow("参加工作时间").Year

 

改为: e.DataRow("工龄") = Date.Today.Year - e.DataRow("参加工作时间").Year & "年" & Date.Today.Month - e.DataRow("参加工作时间").Month & "月"

太谢谢啦,好了,只要满7个月,自动加了一年,然后是负几个月了。一目了然了。

参加工作时间 1979/9/1  工龄 33年-2月


--  作者:童年
--  发布时间:2012/7/24 19:18:00
--  回复:(don)以下是引用muhua在2012-7-24 18:10:00的...

好的,我也试试


--  作者:童年
--  发布时间:2012/7/24 19:42:00
--  

这个我用于岗位聘期的计算了。

If e.DataCol.Name = "开始日期" OrElse e.DataCol.Name = "结束日期" Then
Dim dr As DataRow = e.DataRow
If dr.IsNull("开始日期") OrElse dr.IsNull("结束日期") OrElse dr("开始日期")> dr("结束日期") Then
dr("年") = Nothing
dr("月") = Nothing
dr("日") = Nothing
dr("年月日") = Nothing
Else
Dim d1,d2 As Date
Dim y,m,d As Integer
d1= dr("开始日期")
d2=dr("结束日期").Adddays(1)
y=DateDiff("yyyy",d1,d2)
m=DateDiff("m",d1,d2)
d=DateDiff("d",d1,d2)

y = y +val(d1.AddYears(y)>d2)
m = m+val(d1.AddMonths(m)>d2)-12*y
d= d-DateDiff("d",d1,d1.addmonths(y*12+m))
dr("年") = y
dr("月") = m
dr("日") = d
dr("年月日") = iif(y = 0, "",y & "年") & iif(m = 0,"",m & "个月") & iif(d = 0,"",d & "日")
End If
End If

[此贴子已经被作者于2012-7-24 19:42:39编辑过]