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