تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معرفة الوقت الاضغر بين وقتين وقت الدخول وقت الخروج- مرفق مثال
#1
السلام عليكم 

اخوانى الافاضل 

لدى فورم لحساب وقت التاخير 
اريد وضع عمود فى الداتا جريد ووضع وقت الدخول لكل يوم ثم حساب وقت التاخير  


وثم حساب اجمالي وقت التاخير خلال تاريخ التاريخ


ارجو المساعدة لصعوبة التعامل مع حسابات  الوقت  

مرفق مثال 

.zip   TimeWork1.zip (الحجم : 582.42 ك ب / التحميلات : 25)
الرد }}}
تم الشكر بواسطة:
#2
هل يوجد حل
الرد }}}
تم الشكر بواسطة:
#3
محتاج استعلام يظهر لي الفرق بين تاريخين و كمان الساعات .
الرد }}}
تم الشكر بواسطة: new_programer , new_programer
#4
السلام عليكم ورحمة الله وبركاته 
لحساب مدة التأخر     
            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") 
 لكم جزيل الشكر 
دمتم بود 
الرد }}}
تم الشكر بواسطة: asemshahen5 , new_programer
#5
[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("-") 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") 
 لكم جزيل الشكر 
دمتم بود 

 اخي ومعلمي الفاضل   
                                     جيولوجي مبتدئ 

ربنا يزيدك من علمه ويجعلة فى ميزان حساناتك ويباركلك فى حياتك 

 قمت بمحاولة لاستخدام  شرحك والكود المرفق  - لكن للاسف لم استطيع للوصول للمطلوب لقلة خبرة بالتعامل مع الوقت 
مرفق المثال بعد التعديل الرجاء الاطلاع علية 


وارجو التكرم ومساعدتى  كما مرفق صورة توضيح المطلوب

   


الملفات المرفقة
.zip   TimeWork1 (2).zip (الحجم : 609.04 ك ب / التحميلات : 20)
الرد }}}
تم الشكر بواسطة: asemshahen5
#6
(25-11-21, 03:11 AM)new_programer كتب :
(22-11-21, 10:35 PM)جيولوجي مبتدئ كتب : السلام عليكم ورحمة الله وبركاته 
لحساب مدة التأخر     
            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") 
 لكم جزيل الشكر 
دمتم بود 

 اخي ومعلمي الفاضل   
                                     جيولوجي مبتدئ 

ربنا يزيدك من علمه ويجعلة فى ميزان حساناتك ويباركلك فى حياتك 

 قمت بمحاولة لاستخدام  شرحك والكود المرفق  - لكن للاسف لم استطيع للوصول للمطلوب لقلة خبرة بالتعامل مع الوقت 
مرفق المثال بعد التعديل الرجاء الاطلاع علية 


وارجو التكرم ومساعدتى  كما مرفق صورة توضيح المطلوب
السلام عليكم
جربت تستخدم دالة date difference  ؟ 
انا كمان مبتدئ زيك بس بحاول اساعد ?
الرد }}}
تم الشكر بواسطة: new_programer , asemshahen5
#7
انا بحاول اتعلم التعامل مع الوقت

لكن لم أري دروس كثيرة لشرح مثل هذا الأمور

الشرح قليل جدا

طيب ممكن اعرف ازاى احدد الوقت الدخول

لان لما بسحب البصمة
البيانات بتظهر التاريخ مع الوقت مرتين مرة دخول ومرة خروج

ازاى احدد وقت الدخول
الرد }}}
تم الشكر بواسطة: asemshahen5


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] معرفة الخطا MOHAMMED ALZWI 0 36 15-04-24, 01:56 PM
آخر رد: MOHAMMED ALZWI
  [VB.NET] معرفة الخطا MOHAMMED ALZWI 2 38 15-04-24, 01:54 PM
آخر رد: MOHAMMED ALZWI
  مرفق سورس كود ارسال ملفات الى الواتس بدون API new_programer 0 51 14-04-24, 02:16 PM
آخر رد: new_programer
  اريد اضافة حفظ PDF فى مسار على الهارد- مثال الاستاذ عبدالله الدوسري new_programer 0 43 13-04-24, 12:59 PM
آخر رد: new_programer
  مساعدة في حل سؤال بخصةص عرض الوقت عبدالكريم برشدان 2 98 12-04-24, 03:05 PM
آخر رد: عبدالكريم برشدان
  عدد محاولات تسجيل الدخول محمد خيري 10 147 12-04-24, 02:41 PM
آخر رد: محمد خيري
  معرفة رصيدي للهاتف النقال المتصل بالكمبيوتر وارسال رسائل نصية منه AHMED213 1 151 03-04-24, 08:08 AM
آخر رد: sdz
Star الوقت المستغرق لكتابه الكلمه سلام و محبه 0 65 02-04-24, 04:44 PM
آخر رد: سلام و محبه
  [VB.NET] معرفة بيانات الجهاز محمد بوقزاحة 1 326 21-02-24, 11:44 PM
آخر رد: AHMED213
  معرفة عدد مرات تكرار الاسم في الداتاقريدفيو صالح عبدالله 8 437 05-02-24, 04:39 PM
آخر رد: صالح عبدالله

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم