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

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

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


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


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

مرفق مثال 

.zip   TimeWork1.zip (الحجم : 582.42 ك ب / التحميلات : 10)
الرد
تم الشكر بواسطة:
#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 ك ب / التحميلات : 2)
الرد
تم الشكر بواسطة: 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  معرفة الأسماء المكررة في نفس العمود في الداتاقريدفيو جيولوجي مبتدئ 5 187 منذ 6 ساعة مضت
آخر رد: سعود
  اريد عمل استعلام على الوقت الاقل كما بالصورة new_programer 5 101 , 01:52 AM
آخر رد: new_programer
  ممكن مثال على كيفية تعليق فاتورررة tfarejdz 4 262 22-11-21, 02:10 AM
آخر رد: Taha Okla
  طريقة لفتح نوافذ مبيعات مختلفة في نفس الوقت وكل فاتورة لها رقم تلقائي tfarejdz 9 1,686 08-09-21, 07:25 PM
آخر رد: tfarejdz
  ايجاد فرق الوقت بين اداتين DateTimePicker strongriseman 2 351 22-08-21, 11:26 AM
آخر رد: strongriseman
  حساب و عرض فارق الوقت بين الصلوات aldery 2 428 21-07-21, 09:46 PM
آخر رد: aldery
  العمل على قاعدة بيانات أونلاين وأوفلاين بنفس الوقت بشار نصري 2 1,000 18-06-21, 01:57 AM
آخر رد: aldery
  معرفة أكبر قيمة للتاريخ الموجودة في الداتاقريدفيو جيولوجي مبتدئ 6 812 19-05-21, 10:25 AM
آخر رد: جيولوجي مبتدئ
  أريد معرفة ما ان كان البرنامج موجود مسبقا علي الكمبيوتر ام لا أبو عبدالله الحلواني 9 1,074 06-05-21, 08:10 PM
آخر رد: أبو عبدالله الحلواني
  [vb6.0] كود اذا لم يقم بتسجيل الدخول خلال 3 دقائق فانه سيتم الخروج من البرنامج بشكل تلقائي Rasha Hasanain 1 695 18-04-21, 04:31 PM
آخر رد: messry

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


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