在木华的基础上,稍微改一下就行了:
Select Case e.DataCol.name
Case "结束时间","开始时间"
If e.DataRow.IsNull("结束时间") OrElse e.DataRow.IsNull("开始时间") Then
e.DataRow("间隔时间_年") = Nothing
e.DataRow("间隔时间_月") = Nothing
e.DataRow("间隔时间_日") = Nothing
Else
Dim y,m,d As Integer
DateYMD(e.DataRow("结束时间"),e.DataRow("开始时间"),y,m,d)
If d >22 Then
m = m + 1
d = 0
End If
If m > 10 Then
y = y+1
m = 0
End If
e.DataRow("间隔时间_年") = y
e.DataRow("间隔时间_月") = m
e.DataRow("间隔时间_日") = d
e.DataRow("间隔时间") = iif(y >0,y & "年","") & iif(m > 0,m & "月","") & iif(d > 0,d & "日","")
End If
End Select