改为这样没问题了:不超过30分钟的不收费,大过30分钟小于1小时按3元收,大于1小时的按每小时3元停车费,超过20元的按最高20元计。
Select Case e.DataCol.name
Case "缴费_月租_起计日期","缴费_月租_止计日期"
Dim dr As DataRow = e.DataRow
Systemready = False
If dr.IsNull("缴费_月租_起计日期") OrElse dr.IsNull("缴费_月租_止计日期") Then
dr("缴费_月租_缴费月数") = Nothing
Else
dr("缴费_月租_缴费月数") = DateDiff("m",dr("缴费_月租_起计日期"),dr("缴费_月租_止计日期")) + 1
End If
Systemready = True
Case "缴费_月租_缴费月数","缴费_月租_月租单价"
Dim dr As DataRow = e.DataRow
dr("缴费_月租_缴费金额") = dr("缴费_月租_缴费月数") * dr("缴费_月租_月租单价")
End Select
Select Case e.DataCol.name
Case "缴费_月租_起计日期","缴费_月租_缴费月数"
Dim dr As DataRow = e.DataRow
Systemready = False
If dr.IsNull("缴费_月租_起计日期") OrElse dr.IsNull("缴费_月租_缴费月数") Then
dr("缴费_月租_止计日期") = Nothing
Else
Dim a As Date = dr("缴费_月租_起计日期").AddMonths(dr("缴费_月租_缴费月数") - 1)
dr("缴费_月租_止计日期") = New Date(a.Year,a.Month,Date.DaysInMonth(a.Year,a.Month))
End If
Systemready = True
End Select
Select Case e.DataCol.name
Case "缴费_临时停放_起计时间","缴费_临时停放_止计时间"
Dim dr As DataRow = e.DataRow
If dr.IsNull("缴费_临时停放_起计时间") OrElse dr.IsNull("缴费_临时停放_止计时间") Then
dr("缴费_临时停放_缴费时间") = Nothing
Else
Dim tp As TimeSpan
tp = cdate(dr("缴费_临时停放_止计时间")) - cdate(dr("缴费_临时停放_起计时间"))
dr("缴费_临时停放_缴费时间") = tp.TotalSeconds
End If
Case "缴费_临时停放_缴费时间"
Dim dr As DataRow = e.DataRow
If dr("缴费_临时停放_缴费时间") > 1800 And dr("缴费_临时停放_缴费时间") <= 3600 Then
dr("缴费_临时停放_缴费金额") = 3
ElseIf dr("缴费_临时停放_缴费时间") > 3600 Then
dr("缴费_临时停放_缴费金额") = math.Min(20,dr("缴费_临时停放_缴费时间") / 3600 * 3) '每小时3元停车费,超过20元的按最高20元计
Else
dr("缴费_临时停放_缴费金额") = 0
End If
End Select