السلام عليكم ورحمة الله وبركاته
لحساب مدة التأخر
TextBox16.Text = dt3.Rows(0)(1).ToString
TextBox91.Text = dt40.Rows(0)(1).ToString
""=TextBox18.Text
'' ''DateTimePicker2.Text = DateTime.Now.ToShortTimeString
TextBox18.Text = DateTimePicker2.Value.ToShortTimeString
Dim Difference As TimeSpan = TimeSpan.Parse(TextBox18.Text) - TimeSpan.Parse(TextBox16.Text)
TextBox21.Text = Strings.Right("0" & Difference.Hours, 2) & ":" & Strings.Right("0" & Difference.Minutes, 2)
حيث dt3 جدول تضع وقت الحضور الرسمي ثم تضع القيمة في Textbox16
و textbox18 تضع فيه قمية Datetimepikker2 بعد أن تحول قيمته لوقت وهو يمثل وقت حضور الموظف ثم تستخدم TimeSpan كما هو موضح
ثم تقوم بالتالي
If TextBox21.Text.Contains("-") Then
TextBox21.Text = "00:00"
End If
وذلك لإزالة علامة ( - )
إن شاء الله يفيدك الشرح
دمت بود
لكم جزيل الشكر
السلام عليكم ورحمة الله وبركاته
تابع حل السؤال السابق
كانت اجابة السؤال السابق وهو كيفية حساب مدة التأخر ليوم معين
بالنسبة لطريقة حساب التأخير من عمود في الداتاقريدفيو تقوم بالتالي
أنا إفترضت أن العمود الذي وضعت مدة الـتأخر هو العمود رقم 7
Dim columnIndex1 As Integer = 7
Dim h1, m1 As Integer
For Each r1 As DataGridViewRow In Me.DataGridView2.Rows
If Not IsNothing(r1.Cells(columnIndex1).Value) Then
h1 += r1.Cells(columnIndex1).Value.ToString.Split(":")(0)
m1 += r1.Cells(columnIndex1).Value.ToString.Split(":")(1)
End If
Next
If m1 > 59 Then
h1 += Math.Floor(m1 / 60)
m1 = m1 Mod 60
End If
Dim result1 As String = String.Format("{0}:{1}", h1, m1)
Me.TextBox4.Text = result1
Dim columnIndex2 As Integer = 21
Dim h2, m2 As Integer
For Each r2 As DataGridViewRow In Me.DataGridView2.Rows
If Not IsNothing(r2.Cells(columnIndex2).Value) Then
h2 += r2.Cells(columnIndex2).Value.ToString.Split(":")(0)
m2 += r2.Cells(columnIndex2).Value.ToString.Split(":")(1)
End If
Next
If m2 > 59 Then
h2 += Math.Floor(m2 / 60)
m2 = m2 Mod 60
End If
Dim result2 As String = String.Format("{0}:{1}", h2, m2)
Me.TextBox3.Text = result2
لكم جزيل الشكر
دمتم بود
السلام عليكم ورحمة الله وبركاته
قمت في الجواب السابق بحساب التأخر في عمودين وهم 7 و 21 وطبعاً كل عمود يحسب على حدة وليس له أي علاقة بالعمود الآخر
لكم جزيل الشكر
دمتم بود
السلام عليكم ورحمة الله وبركاته
تابع حل السؤال السابق
آسف لأنني لم أقم بوضع الاستعلام بين تاريخين
Dim ds1 As New DataSet
Dim da1 As New SqlDataAdapter("Select * From Hodor_Table Where Emp_Name like '" & ComboBox1.Text & "' AND Emp_State like '%" & ComboBox6.Text & "%' AND Date_Hodor between @d1 and @d2 ", Sqlcon)
da1.SelectCommand.Parameters.AddWithValue("@d1", Me.DateTimePicker1.Value.Date)
da1.SelectCommand.Parameters.AddWithValue("@d2", Me.DateTimePicker2.Value.Date)
da1.Fill(ds1, "Hodor_Table")
DataGridView2.DataSource = ds1.Tables("Hodor_Table")
لكم جزيل الشكر
دمتم بود