2016-07-26 57 views
-1

我需要幫助計算晚班時間與值班 - 時鐘但我的代碼將不會工作, 這實際上沒有時鐘輸入時鐘我把這只是例如。\VB.NET我可以如何計算在datagridview晚的時間

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click 
    For Each row As DataGridViewRow In frmExcelGrid.Rows 
     Dim clock1 As DateTime 
     Dim clock2 As DateTime 
     Dim total As TimeSpan 
     clock1 = DateTime.Parse(row.Cells("clock in").Value) 
     clock2 = DateTime.Parse(row.Cells("clock out").Value) 
     total = clock1 - clock2 
     row.Cells("total").Value = total 
    Next 


End Sub 

image

+0

究竟做總說明了什麼?現在你的總數將永遠是一個'負面時間',因爲你正在減去之前的日期。 '10:00 - 16:00 = -6:00' '16:00-10:00 = 6' – Luke

+0

我的問題是在我從未做過的代碼中計算出來的錯誤。 mscorlib.dll 附加信息:字符串未被識別爲有效的DateTime。「未處理的異常的類型'System.FormatException'發生在mscorlib.dll中。 –

回答

0

你可能想減去時鐘從時鐘輸出(否則你可能有一個負的時間跨度)。

DataGridView Cell的值是一個對象,所以在將它解析爲DateTime之前,您可能需要一個.ToString。

您可能還需要一個.ToString():設置Value

Dim clockIn = DateTime.Parse(row.Cells("clock in").Value.ToString()) 
    Dim clockOut = DateTime.Parse(row.Cells("clock out").Value.ToString()) 
    Dim total = clockOut - clockIn 
    row.Cells("total").Value = total.ToString() 

時如果DateTime.Parse不起作用,你將不得不考慮DateTime.ParseExact

+0

這個錯誤仍然顯示mscorlib.dll中出現'System.FormatException'類型的未處理異常 附加信息:字符串未被識別爲有效的DateTime。 –

+0

哦 - 現在你已經發布了一個不同的問題 –