请教各位一个问题:台球馆有很多张球台,每个球台都分有N个时段(可任意分时段).客人在球馆任意一张台打球,消费时间跨过X个时段.请问怎样算出这个客人的消费金额?球台消费时段表:
台号-时段-开始时间-结束时间-单价
1-----1-------0:00 -------3:00----10.00
1-----2-------3:00--------8:00----8.00
1-----n-------y:00--------y1:00---X.00
1-----n+1----y2:00-------24:00---X1.00 请各位大哥救命!急!!用程序语言表达(VB)
台号-时段-开始时间-结束时间-单价
1-----1-------0:00 -------3:00----10.00
1-----2-------3:00--------8:00----8.00
1-----n-------y:00--------y1:00---X.00
1-----n+1----y2:00-------24:00---X1.00 请各位大哥救命!急!!用程序语言表达(VB)
第1个时段消费金额(3:00-starttime)*60*10.00+第2个时段消费金额(8:00-3:00)*60*8.00+第3个时段消费金额(y1:00-y:00)*60*x.00+结束时段的消费金额(endtime-最后一个时段的开始时间)*60*最后一个时段的单价=客人总消费金额.
球台消费时段表:
台号-时段-开始时间-结束时间-单价
1-----1-------0:00 -------3:00----10.00
1-----2-------3:00--------8:00----8.00
1-----n-------y:00--------y1:00---X.00
1-----n+1----y2:00-------24:00---X1.00
BeginTime As Integer '开始时间
EndTime As Integer '结束时间
FeePerMinute As Integer '每分钟的价钱
End Type
Dim BeginTime As Date '计录开始时间
Dim EndTime As Date '记录结束时间
Dim fee(1 To 4) As FeeLaw '资费标准数据
Private Sub Command1_Click()
BeginTime = Now
EndTime = DateAdd("h", 35, Now)
Dim ihourPart As Integer
Dim idays As Integer
Dim i As Integer
Dim j As Integer
Dim lMinutes As Long '总时间
Dim lPartMinutes As Long '每一阶段的时间
Dim lfee As Long '总费用
ihourPart = DatePart("h", BeginTime)
lMinutes = Abs(DateDiff("n", EndTime, BeginTime))
For i = 1 To 4 '得到开始时间所在的位置
If ihourPart >= fee(i).BeginTime And ihourPart <= fee(i).EndTime Then
Exit For
End If
Next
'这里先计算第一次的时间
lPartMinutes = (fee(i).EndTime - DatePart("h", BeginTime)) * 60 _
- DatePart("n", BeginTime) '从开始时间到开始所在区间末的时间
If lPartMinutes >= lMinutes Then '时间被第一个区间所包括
lfee = lMinutes * fee(i).FeePerMinute
lMinutes = 0
Else
lfee = lPartMinutes * fee(i).FeePerMinute
lMinutes = lMinutes - lPartMinutes
End If
i = (i Mod 4) + 1
Do While lMinutes > 0 '当时间计算完了
lPartMinutes = (fee(i).EndTime - fee(i).BeginTime) * 60 '计算该阶段的标准时间
If lPartMinutes >= lMinutes Then '如果所有时间在该阶段内
lfee = lfee + lMinutes * fee(i).FeePerMinute '用该阶段的资费标准来计算
lMinutes = 0 '时间计算完毕
Else '如果不全在该时间段
lfee = lPartMinutes * fee(i).FeePerMinute '将时间段内的标准时间乘以资费标准
lMinutes = lMinutes - lPartMinutes '将已计算的时间减掉
End If
i = (i Mod 4) + 1
Loop
MsgBox "总费用为:" & lfee, vbInformation, "收费信息"
End SubPrivate Sub Form_Load()'如果是保存在数据库中的也可以从数据库中读出来
fee(1).BeginTime = 0
fee(1).EndTime = 6
fee(1).FeePerMinute = 10
With fee(2)
.BeginTime = 6
.EndTime = 12
.FeePerMinute = 15
End With
With fee(3)
.BeginTime = 12
.EndTime = 18
.FeePerMinute = 20
End With
With fee(4)
.BeginTime = 18
.EndTime = 24
.FeePerMinute = 10
End With
End Sub
dim tim1,tim2 as date
command1_click()
tim1=now
command2_click()
tim2=now
command3_click()
print tim2-tim1结果是以什么为单位计算的?