Vb.net VB-在特定值更改时执行计算并更新结果
我如何计算一个人必须为我的虚拟“服务”支付的金额,以及如何在“服务会话”继续进行时更新结果 我有四个Vb.net VB-在特定值更改时执行计算并更新结果,vb.net,Vb.net,我如何计算一个人必须为我的虚拟“服务”支付的金额,以及如何在“服务会话”继续进行时更新结果 我有四个TextBoxes: 第一个(TextBox1)包含服务会话的开始时间 第二个(TextBox2)包含会话的持续时间 第三个(TextBox3)包含固定值25.36 第四个(TextBox4)应显示计算结果 当会话持续时间(值TextBox2)改变时,我想更新TextBox4中的结果。会话每持续一小时,结果中应加上25.36欧元的固定值(TextBox3)。我怎样才能做到这一点 以下是我尝试过
TextBox
es:
- 第一个(
)包含服务会话的开始时间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
只需记录开始和结束时间,从结束中扣除开始时间,即可获得持续时间。你可以通过获得DateTime来实现。现在 或者,如果你想用定时器,只需跟踪秒数(或其他)
然后将持续时间乘以每个时间段的付款。 如果你跟踪秒数并在小时内付款,那么只需这样做
seconds * payment/60/60
计时器的毫秒间隔是多少?谢谢你,史蒂夫。。在我的Timer1(1000-False)中。。会话的持续时间如下(00:00:00)显示在TextBox2中,因此您希望在计时器触发事件勾选时以秒为单位计算工资?是,我将在TextBox2中显示根据会话持续时间支付的金额。。TextBox2中的会话持续时间会更改,TextBox4中的金额也会更改,直到会话结束。您需要按秒(一小时3600秒)计算工资,并将该值乘以持续时间TotalSeconds。最后将结果分配给第四个文本框。但是,这里要做的非常重要的事情是转到项目属性并启用Option Strict。使用datetime或decimal之类的字符串变量永远不会结束。谢谢你,克鲁尔。但我想计算的是要支付的金额,而不是时间间隔。在TextBox2中,工期间隔非常有效,然后将工期乘以付款。如果你追踪秒数,那么将小时工资除以60分两次(第一次拿到一分钟的工资,第二次拿到一秒钟的工资)谢谢你,克鲁尔。我是一个非常非常初学者,因为我不明白如何在Mine中插入你的代码。这真的很简单,用你的工资乘以工期,想想看。你的薪水在哪里,工作时间在哪里,然后将两者合并。我已经尝试过这样做,但我没有在文本框4中显示金额。。这样(Dim Total_Pay As Double=0-Total_Pay=CStr(CDbl(TextBox2.Text)*CDbl(TextBox3.Text)/60)-TextBox4.Text=格式(Total_Pay,“#,#0.00”)
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