vba 编写一个自定义函数过程ParkingFee,用于根据停车时

编写一个自定义函数过程ParkingFee,用于根据停车时间(格式为:时:分:秒)以及单价(单位:元/小时)计算其相应的停车费用(单位:元),停车费用的计算方法为“单价*计费时间”,其中计费时间按如下计算:
(1)停车按小时收费,对于不满一个小时的按照一个小时计费;
(2)对于超过整点小时数十五分钟(包含十五分钟)的多累积一个小时。(例如1小时23分,将以2小时计费;1小时14分,将以1小时计费)

可以用简单公式实现,公式为:

=ROUND(A2*24+0.25,0)

示例:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-01
Sub SS()
Dim T As Date      '存放停车时间
Dim D As Integer   '存放停车单价
Dim MyP As Integer '存放应付停车费用

T = #2:25:38 AM#   '给定一个停车时间
D = 10             '给定一个停车单价

MyP = ParkingFee(T, D)

Debug.Print MyP
End Sub

'自定义函数,根据停车时间和停车单价返回费用
Function ParkingFee(ByVal MyT As Date, ByVal MyD As Integer) As Integer
Dim HH As Integer
Dim MM As Integer
Dim SS As Integer

HH = Hour(MyT)
MM = Minute(MyT)
SS = Second(MyT)

If HH = 0 Then
   ParkingFee = MyD
Else
   If MM < 15 Then
      ParkingFee = HH * MyD
   Else
      ParkingFee = (HH + 1) * MyD
   End If
End If

End Function

本回答被提问者采纳
第2个回答  2018-07-01
Function ParkingFee(h As Integer, m As Integer, s As Integer, p As Single) As Single
Dim t As Integer

t = 0
If 0 = h And (m > 0 Or s > 0) Then
t = 1
ElseIf h >= 1 Then
t = h
If m >= 15 Then
t = t + 1
End If
End If
ParkingFee = t * p
End Function
相似回答