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

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

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


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


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

مرفق مثال 

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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  التحقق من تنفيذ عمليتان في نفس الوقت أو إلغائهما معتز حسن 7 315 17-07-22, 12:48 AM
آخر رد: معتز حسن
  [VB.NET] معرفة الخطأ ومعالجته محمد بوقزاحة 0 217 05-06-22, 02:01 PM
آخر رد: محمد بوقزاحة
  [سؤال] طباعة ايصال على طابعتين فى نفس الوقت dr.programming 3 422 30-05-22, 06:22 PM
آخر رد: aljzazy
  [كورس] انشاء قاعدة بيانات فارغة و جديدة أثناء التشغيل-درس مهم و مثال DR.YASER 9 786 19-05-22, 04:43 AM
آخر رد: DR.YASER
  سؤال عن برنامج ارسال رصيد موبايل من الكمبيوتر / يوجد مثال/ ابو انس 1 689 14-04-22, 03:18 AM
آخر رد: ابو انس
  مشكلة في طباعة تقرير ReportViewer مباشرة في فيجوال ستوديو - يوجد مثال سيف الشمال 3 837 13-03-22, 07:57 AM
آخر رد: ahmedhhh2
  [VB.NET] خطأ عند الدخول إلى NuGet package manager Necro PC 1 373 11-02-22, 12:06 AM
آخر رد: اسامه الهرماوي
  تعديل على مثال لتقرير report viewer محمود صالح 2 600 15-01-22, 08:57 PM
آخر رد: محمود صالح
  مثال لخيارات التقرير محمود صالح 0 451 07-01-22, 07:47 AM
آخر رد: محمود صالح
  [سؤال] سؤال في الوقت حسن الجلب 1 464 28-12-21, 08:06 AM
آخر رد: سعود

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


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