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

Convert string from two textboxes to hh:mm vb.NET

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

在应用程序中,用户在“小时和分钟”文本框中键入轮班时间,并在单击“保存”按钮时保存在数据库中。

如图所示,第一班结束于03:30 p.m,第二班结束于11:30 p.m。 & 第三班在 07:30 a.m。当应用程序加载时,每个班次的小时数和分钟数都存储在变量中。

我的问题是,如何将这些变量的值转换为时间格式 (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

提前致谢。

普拉尚。

改变

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

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

LblShift.Text = Tim = Format(DateTime.Now, "HH:mm")

希望对您有所帮助。