将字符串从两个文本框转换为 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")
希望对您有所帮助。
我正在 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")
希望对您有所帮助。