Vb.net 如何比较时间变量?
我有3个DateTime类型或string类型的变量,格式为Vb.net 如何比较时间变量?,vb.net,Vb.net,我有3个DateTime类型或string类型的变量,格式为hh:mm:ss 例如: dT1="00:00:00" dT2="20:59:59" dT3="18:04:21" 如何执行以下比较 dT1<= dT3 <= dT2 ?? dT1您的示例显示的是字符串而不是日期时间。我将字符串放入名为TimeStrings的数组中。然后我创建了一个时间跨度列表。通过字符串循环,我将冒号上的每个字符串拆分,然后创建一个新的TimeSpan并将其添加到列表中。我使用列表的.Max方法
hh:mm:ss
例如:
dT1="00:00:00"
dT2="20:59:59"
dT3="18:04:21"
如何执行以下比较
dT1<= dT3 <= dT2 ??
dT1您的示例显示的是字符串而不是日期时间。我将字符串放入名为TimeStrings的数组中。然后我创建了一个时间跨度列表。通过字符串循环,我将冒号上的每个字符串拆分,然后创建一个新的TimeSpan并将其添加到列表中。我使用列表的.Max方法来获取列表中的最高值
Private Sub OpCode()
'Constructor TimeSpan(Int32, Int32, Int32)
Dim dT1 = "00:00:00"
Dim dT2 = "20:59:59"
Dim dT3 = "18:04:21"
Dim TimeStrings = {dT1, dT2, dT3}
Dim Spans As New List(Of TimeSpan)
For Each s In TimeStrings
Dim Splits = s.Split(":"c)
Dim span As New TimeSpan(CInt(Splits(0)), CInt(Splits(1)), CInt(Splits(2)))
Spans.Add(span)
Next
Dim HighestValue = Spans.Max
MessageBox.Show(HighestValue.ToString)
End Sub
您可以尝试以下方法:
Dim dT1 As DateTime = New DateTime(2020, 1, 1, 0, 0, 0) ' 00:00:00
Dim dT2 As DateTime = New DateTime(2020, 1, 1, 20, 59, 59) ' 20:59:59
Dim dT3 As DateTime = New DateTime(2020, 1, 1, 18, 04, 21) ' 18:04:21
If dT1 <= dT3 <= dT2 Then
'your code
End If
Dim dT1 As DateTime=新日期时间(2020,1,1,0,0,0)'00:00:00
Dim dT2 As DateTime=新日期时间(2020,1,1,20,59,59)'20:59:59
Dim dT3 As DateTime=新日期时间(2020,1,1,18,04,21)'18:04:21
如果dT1,则可以使用或将字符串转换为时间跨度值。在这之后,比较很简单:
将字符串值添加到集合(数组或字符串列表)
max
将为23:59:59
当然,您可以在此处按升序排列TimeSpan值:
Dim orderedTimeSpans =
dTs.Select(Function(s) TimeSpan.ParseExact(s, "hh\:mm\:ss", CultureInfo.InvariantCulture)).
OrderBy(Function(ts) ts).ToList()
orderedTimeSpans.ForEach(Sub(ts) Console.WriteLine(ts))
其中打印:
00:00:00
18:04:21
20:59:59
23:10:21
23:59:59
使用TryParseExact()
,如果您不确定格式是否正确,则可能不正确(可能是因为值的来源不可靠-例如,用户输入):
这也会返回23:59:59
如果无法解析其中一个值,则不会使用Max()
方法对其进行计算
例如,如果这是输入字符串“23.59:59”
,InvariantCulture
,并且指定的格式不允许返回有效的时间跨度,因此最大值将改为23:10:21
同样,使用TryParseExact()
,但采用扩展形式(使用循环):
我想如果你把它们转换成TimeSpan对象,你应该可以很容易地比较它们。你为什么问我们如何比较变量?本网站不是教你基本知识或为你编写代码。如果要比较变量,请比较它们。如果你不知道如何比较三个变量——如果你真的尝试过,这很容易——那么在线搜索它,因为毫无疑问会有一些例子。Quindi se hosT1=“00:00:00”sT2=“20:59:59”sT3=“18:04:21”
posso definiredT1 as Datetime=sT1,dT2 as Datetime=sT2,dT3 as DateDateTime=sT3
e quindi poter fare
00:00:00
18:04:21
20:59:59
23:10:21
23:59:59
Dim parsed As TimeSpan
Dim max As TimeSpan =
dTs.Select(Function(s) TimeSpan.TryParseExact(s, "hh\:mm\:ss",
CultureInfo.InvariantCulture, parsed)).Max(Function(t) parsed)
Dim maxValue As TimeSpan = New TimeSpan()
Dim parsed As TimeSpan = New TimeSpan()
For Each value As String In dTs
If TimeSpan.TryParseExact(value, "hh\:mm\:ss", CultureInfo.InvariantCulture, parsed) Then
maxValue = If(TimeSpan.Compare(maxValue, parsed) > 0, maxValue, parsed)
End If
Next