将字符串从两个文本框转换为hh:mm vb.NET

时间:2017-08-30 04:20:46

标签: vb.net vb.net-2010

我正在VB.NET中为一个轮班运行的制造单位开发应用程序。在每个班次结束时,应用程序应发出警报,指示班次已结束。

在应用程序中,用户键入班次时间为小时&在“保存”按钮上单击文本框并保存在数据库中。

enter image description here

  

如图所示,第一班在下午3点30分结束,第二班在晚上11点30分结束。 &安培;第三班在上午07:30。当应用程序加载时,小时&每个班次的分钟都存储在变量中。

我的查询是,如何将这些变量的值转换为时间格式(HH:mm),以便我可以将换档时间与系统时间进行比较,并在换档每天结束时发出警报而不管日期。下面是我到目前为止尝试过的代码..

 Private Sub TmrMonitor_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TmrMonitor.Tick
    Dim Tim As String = TxtHH.Text & ":" & TxtMM.Text
    LblShift.Text = (DateTime.ParseExact(Tim, "hh:mm", CultureInfo.InvariantCulture)) = DateTime.Now()
    TmrMonitor.Stop()
    ReadReg()            ' Read data from PLC
    If FormActive = True Then
        TmrMonitor.Start()
    End If
    CommStat()           ' PLC communication status
End Sub

提前致谢。

PRASHANT。

2 个答案:

答案 0 :(得分:3)

更改

LblShift.Text = (DateTime.ParseExact(Tim, "hh:mm", CultureInfo.InvariantCulture)) = DateTime.Now()

Dim Tim As String = TxtHH.Text & ":" & TxtMM.Text
LblShift.Text = (DateTime.ParseExact(Tim, "HH:mm", CultureInfo.InvariantCulture))
Dim shiftTime = TimeSpan.Parse(Tim)
Dim systemtime = TimeSpan.Parse(Now.ToString("HH:mm"))

If (shiftTime.Equals(systemtime) = False) Then
     MessageBox.Show("times don't match")
End If

答案 1 :(得分:1)

问题是,在使用DateTime.ParseExact时,它会以MM/dd/yyyy hh:mm:ss tt格式返回日期。但在您的情况下,您只需要HH:mm格式,因此请使用以下代码进行比较,它将起作用。请注意,这只是一种简单的方法,因为您已经指定了您不关心日期。

LblShift.Text = Tim = Format(DateTime.Now, "HH:mm")
希望它有所帮助。