这个我用于岗位聘期的计算了。
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编辑过]