我该如何计算虚拟的“服务”必须支付的金额,以及在“服务会话”持续进行的情况下如何更新结果?
我有四个TextBox
:
TextBox1
)包含服务会话的开始时间TextBox2
)包含会话的持续时间TextBox3
)包含一个固定值25.36
TextBox4
)将显示计算结果当会话时长(值TextBox2
)改变时,我想更新TextBox4
中的结果。会话持续的每一小时,应将25.36欧元(TextBox3
)的固定值添加到结果中。我该如何实现?
这是我尝试过的:
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Me.Timer1.Enabled = True
Me.TextBox1.Text = Now.ToLongTimeString.ToString()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Try
Dim StartTime As DateTime = Me.TextBox1.Text
Dim EndTime As DateTime = Now.ToLongTimeString.ToString
Dim TotalTime As TimeSpan = EndTime - StartTime
Me.TextBox2.Text = (TotalTime).ToString
Catch ex As Exception
End Try
End Sub
End Class
答案 0 :(得分:0)
只需记录开始和结束时间,从结束开始扣除,即可获得持续时间。通过获取DateTime.Now
或者,如果您想使用计时器,只需跟踪秒(或其他)即可。
Dim Seconds as Integer
Sub TimerTick
Seconds +=1
End Sub
然后将持续时间乘以每个时间范围的付款。 如果您跟踪秒数并以小时为单位付款,则只需
seconds * payment/60/60
Dim StartTime As DateTime
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
StartTime = DateTime.Now
Timer1.Start()
TextBox1.Text = StartTime.ToLongTimeString
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dim TotalTime As TimeSpan = DateTime.Now - StartTime
TextBox2.Text = TotalTime.TotalSeconds.ToString("0")
Dim Payment As Double = TotalTime.TotalHours * CInt(TextBox3.Text)
TextBox4.Text = Payment.ToString("C", Globalization.CultureInfo.GetCultureInfo("de-DE"))
End Sub