Vb.net 如何从多个DataGridView中减去并比较值?
比较2个DataGridView的值,这些值将是datetime 第一步 我使用if语句来匹配columnID和columndaterange中的值,如果正确,我将把它们传递给一个新列。[我得到了正确的结果] 但是什么时候 步骤2 我尝试添加更多条件来比较columnstime[我的预期结果都不正确否] 有人能帮我或分享我的意见吗Vb.net 如何从多个DataGridView中减去并比较值?,vb.net,datagridview,Vb.net,Datagridview,比较2个DataGridView的值,这些值将是datetime 第一步 我使用if语句来匹配columnID和columndaterange中的值,如果正确,我将把它们传递给一个新列。[我得到了正确的结果] 但是什么时候 步骤2 我尝试添加更多条件来比较columnstime[我的预期结果都不正确否] 有人能帮我或分享我的意见吗 Dim storageEarlyin As String Dim storagelatein As String 'Dim storatimetemp As Date
Dim storageEarlyin As String
Dim storagelatein As String
'Dim storatimetemp As DateTime = "12:00:00 PM"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim count As Integer = DataGridView1.Rows.Count
For i = 0 To (count - 1)
Dim clockeddate As String = Convert.ToDateTime(DataGridView1.Rows(i).Cells(1).Value).ToShortDateString
Dim userid As String = DataGridView1.Rows(i).Cells(0).Value.ToString()
Dim count2 As Integer = DataGridView2.Rows.Count
Dim clockedtime As String = Convert.ToDateTime(DataGridView1.Rows(i).Cells(1).Value).ToShortTimeString
For i2 = 0 To (count2 - 1)
Dim daterange As String = Convert.ToDateTime(DataGridView2.Rows(i2).Cells(1).Value).ToShortDateString
Dim userid2 As String = DataGridView2.Rows(i2).Cells(0).Value.ToString()
Dim workstart As String = Convert.ToDateTime(DataGridView2.Rows(i2).Cells(5).Value).ToShortTimeString
Dim ClockAvailableStart As String = Convert.ToDateTime(DataGridView2.Rows(i2).Cells(3).Value).ToShortTimeString
Dim workend As String = Convert.ToDateTime(DataGridView2.Rows(i2).Cells(6).Value).ToShortTimeString
If userid = userid2 And clockeddate = daterange Then
If clockedtime <= workstart And clockedtime >= ClockAvailableStart Then
storageEarlyin = DataGridView1.Rows(i).Cells(1).Value.ToShortTimeString
Me.DataGridView2.Rows(i2).Cells(7).Value = storageEarlyin
Else
storageEarlyin = "No-in"
Me.DataGridView2.Rows(i2).Cells(7).Value = storageEarlyin
End If
If clockedtime > workstart And clockedtime < workend Then
storagelatein = DataGridView1.Rows(i).Cells(1).Value.ToShortTimeString
Me.DataGridView2.Rows(i2).Cells(8).Value = storagelatein
Else
storagelatein = "No-in"
Me.DataGridView2.Rows(i2).Cells(8).Value = storagelatein
End If
End If
Next
Next
End Sub
如果创建变量clockedtime,则workstart ClockAvailableStart为字符串类型,因此如果条件clockedtime=ClockAvailableStart工作不正常,则更改数据类型为datetime
Dim clockedtime As DateTime=
Convert.ToDateTime(DataGridView1.Rows(i).Cells(1).Value).ToShortTimeString
Dim workstart As DateTime=
Convert.ToDateTime(DataGridView2.Rows(i2).Cells(5).Value).ToShortTimeString
Dim ClockAvailableStart As DateTime=
Convert.ToDateTime(DataGridView2.Rows(i2).Cells(3).Value).ToShortTimeString
之后它工作正常显示样本输入和输出?我对我的问题做了一些编辑,先生,我现在就试试!正如你发布的更正,我已经试过了,看起来基本上是正确的!但我必须包括所有的时间范围,只知道准确的结果正确与否!!无论如何,thx优先!!SATSONall所有的时间范围只意味着我不能清楚地理解。更改数据类型后它不工作啊?只是工作找到thx人!时间框架意味着我仍然有休息时间、工作结束时间、早退时间、晚退时间和时钟结束时间。