我想确定 VB 中 2 个 "HH:mm:ss.fff" 值之间的差异
I am looking to determine the difference between 2 "HH:mm:ss.fff" values in VB
我正在努力获取数据网格视图中两个单元格之间的准确值。这两个值都是 HH:mm:ss.fff 格式,但是当我尝试计算差异时,我无法在文本框中显示 .fff。我知道我需要以某种方式格式化,但我尝试的每一种方式都会出错。我的代码如下。我不想以任何方式显示日期或年份,单元格中的数据将始终带有 HH:mm:ss.fff.
提前致谢。使用 Visual Studio 2013
Dim value2 As DateTime = DateTime.Parse(dgvConvert(3, 1).Value)
'value is in "HH:mm:ss.fff" format i.e 08:01:05.900
Dim value1 As DateTime = DateTime.Parse(dgvConvert(3, 2).Value)
'value is in "HH:mm:ss.fff" format i.e 08:01:50.000
Dim timespan2 As DateTime = DateTime.Parse(value2)
Dim timespan1 As DateTime = DateTime.Parse(value1)
Dim duration As TimeSpan = timespan1 - timespan2
Dim duration1 As String = duration.ToString
txtResult.Text = duration1.ToString
'result is "00:00:05" but i am trying to get "00:00:05.900"
'txtResult.Text = duration(format("HH:mm:ss.fff")) does not work.
这是我用来将 CSV 写入 DataGridView 的代码
Private Sub btnLoadFileToConvert_Click(sender As Object, e As EventArgs) Handles btnLoadFileToConvert.Click
' MessageBox.Show("Make sure your file only contains numbers in the first coumn", "Check File")
dgvConvert.Rows.Clear()
Dim TextLine As String = ""
Dim SplitLine() As String
Dim fname As String = txtFileToConvert.Text
If System.IO.File.Exists(fname) = True Then
Dim objReader1 As New System.IO.StreamReader(fname)
Do While objReader1.Peek() <> -1
TextLine = objReader1.ReadLine()
SplitLine = Split(TextLine, ",")
Me.dgvConvert.Rows.Add(SplitLine)
Loop
objReader1.Close()
objReader1.Dispose()
Else
MsgBox("File Does Not Exist")
End If
dgvConvert.RowCount = 6001
如果您的单元格始终包含时间值,您可以将它们解析为 TimeSpan structure。然后你可以从另一个中减去一个。
如果您想显示显示毫秒的值,您可以使用接受格式的 overload of .ToString(请注意,这与 DateTime 格式略有不同,因为某些字符需要转义。
'values for debug
Dim cell2Value = "08:01:05.900" 'dgvConvert(3, 1).Value.ToString
Dim cell1Value = "08:01:50.000" 'dgvConvert(3, 2).Value.ToString
Dim value2 = TimeSpan.Parse(cell2Value)
Dim value1 = TimeSpan.Parse(cell1Value)
TextBox1.Text = (value1 - value2).ToString("hh\:mm\:ss\.fff")
我正在努力获取数据网格视图中两个单元格之间的准确值。这两个值都是 HH:mm:ss.fff 格式,但是当我尝试计算差异时,我无法在文本框中显示 .fff。我知道我需要以某种方式格式化,但我尝试的每一种方式都会出错。我的代码如下。我不想以任何方式显示日期或年份,单元格中的数据将始终带有 HH:mm:ss.fff.
提前致谢。使用 Visual Studio 2013
Dim value2 As DateTime = DateTime.Parse(dgvConvert(3, 1).Value)
'value is in "HH:mm:ss.fff" format i.e 08:01:05.900
Dim value1 As DateTime = DateTime.Parse(dgvConvert(3, 2).Value)
'value is in "HH:mm:ss.fff" format i.e 08:01:50.000
Dim timespan2 As DateTime = DateTime.Parse(value2)
Dim timespan1 As DateTime = DateTime.Parse(value1)
Dim duration As TimeSpan = timespan1 - timespan2
Dim duration1 As String = duration.ToString
txtResult.Text = duration1.ToString
'result is "00:00:05" but i am trying to get "00:00:05.900"
'txtResult.Text = duration(format("HH:mm:ss.fff")) does not work.
这是我用来将 CSV 写入 DataGridView 的代码
Private Sub btnLoadFileToConvert_Click(sender As Object, e As EventArgs) Handles btnLoadFileToConvert.Click
' MessageBox.Show("Make sure your file only contains numbers in the first coumn", "Check File")
dgvConvert.Rows.Clear()
Dim TextLine As String = ""
Dim SplitLine() As String
Dim fname As String = txtFileToConvert.Text
If System.IO.File.Exists(fname) = True Then
Dim objReader1 As New System.IO.StreamReader(fname)
Do While objReader1.Peek() <> -1
TextLine = objReader1.ReadLine()
SplitLine = Split(TextLine, ",")
Me.dgvConvert.Rows.Add(SplitLine)
Loop
objReader1.Close()
objReader1.Dispose()
Else
MsgBox("File Does Not Exist")
End If
dgvConvert.RowCount = 6001
如果您的单元格始终包含时间值,您可以将它们解析为 TimeSpan structure。然后你可以从另一个中减去一个。
如果您想显示显示毫秒的值,您可以使用接受格式的 overload of .ToString(请注意,这与 DateTime 格式略有不同,因为某些字符需要转义。
'values for debug
Dim cell2Value = "08:01:05.900" 'dgvConvert(3, 1).Value.ToString
Dim cell1Value = "08:01:50.000" 'dgvConvert(3, 2).Value.ToString
Dim value2 = TimeSpan.Parse(cell2Value)
Dim value1 = TimeSpan.Parse(cell1Value)
TextBox1.Text = (value1 - value2).ToString("hh\:mm\:ss\.fff")