25-11-21, 03:11 AM
[attachment=27311 كتب :جيولوجي مبتدئ pid='178597' dateline='1637606123']السلام عليكم ورحمة الله وبركاته
لحساب مدة التأخر
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("-") ThenTextBox21.Text = "00:00"End If
وذلك لإزالة علامة ( - )
إن شاء الله يفيدك الشرح
دمت بود
لكم جزيل الشكر
السلام عليكم ورحمة الله وبركاته
تابع حل السؤال السابق
كانت اجابة السؤال السابق وهو كيفية حساب مدة التأخر ليوم معين
بالنسبة لطريقة حساب التأخير من عمود في الداتاقريدفيو تقوم بالتالي
أنا إفترضت أن العمود الذي وضعت مدة الـتأخر هو العمود رقم 7
Dim columnIndex1 As Integer = 7Dim h1, m1 As IntegerFor Each r1 As DataGridViewRow In Me.DataGridView2.RowsIf Not IsNothing(r1.Cells(columnIndex1).Value) Thenh1 += r1.Cells(columnIndex1).Value.ToString.Split(":")(0)m1 += r1.Cells(columnIndex1).Value.ToString.Split(":")(1)End IfNextIf m1 > 59 Thenh1 += Math.Floor(m1 / 60)m1 = m1 Mod 60End IfDim result1 As String = String.Format("{0}:{1}", h1, m1)
Me.TextBox4.Text = result1
Dim columnIndex2 As Integer = 21Dim h2, m2 As IntegerFor Each r2 As DataGridViewRow In Me.DataGridView2.RowsIf Not IsNothing(r2.Cells(columnIndex2).Value) Thenh2 += r2.Cells(columnIndex2).Value.ToString.Split(":")(0)m2 += r2.Cells(columnIndex2).Value.ToString.Split(":")(1)End IfNextIf m2 > 59 Thenh2 += Math.Floor(m2 / 60)m2 = m2 Mod 60End IfDim result2 As String = String.Format("{0}:{1}", h2, m2)
Me.TextBox3.Text = result2
لكم جزيل الشكر
دمتم بود
السلام عليكم ورحمة الله وبركاته
قمت في الجواب السابق بحساب التأخر في عمودين وهم 7 و 21 وطبعاً كل عمود يحسب على حدة وليس له أي علاقة بالعمود الآخر
لكم جزيل الشكر
دمتم بود
السلام عليكم ورحمة الله وبركاته
تابع حل السؤال السابق
آسف لأنني لم أقم بوضع الاستعلام بين تاريخين
Dim ds1 As New DataSetDim 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")لكم جزيل الشكردمتم بود
اخي ومعلمي الفاضل
جيولوجي مبتدئ
ربنا يزيدك من علمه ويجعلة فى ميزان حساناتك ويباركلك فى حياتك
قمت بمحاولة لاستخدام شرحك والكود المرفق - لكن للاسف لم استطيع للوصول للمطلوب لقلة خبرة بالتعامل مع الوقت
مرفق المثال بعد التعديل الرجاء الاطلاع علية
وارجو التكرم ومساعدتى كما مرفق صورة توضيح المطلوب

