以文本方式查看主题 - 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
请问如何实际工龄为 *年*月 [此贴子已经被作者于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编辑过]
|