منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : اريد تعديل الكود ليعمل على صف فى داتا جريد
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
لكن الكود لا يعمل على الوقت لو بصيغة AM PM

وربنا يوفقك ومنظر منك الدعم لانى مش قادر اوصل لحل
(29-11-21, 12:54 AM)new_programer كتب : [ -> ]لكن الكود لا يعمل على الوقت لو بصيغة AM     PM

وربنا يوفقك   ومنظر منك الدعم   لانى مش قادر اوصل لحل

الـam  و الـ pm  لا تجتمع مع تنسيق زي كذا: 

PHP كود :
01:20:33 am 


اما تستخدم نظام 12 ساعة مع am pm او تستخدم نظام 24 ساعة من دون am pm
يسمحلي اخي سعود بهذا التعديل
يعمل سواء ب am/pm او بدونها لاي خلية
كود :
For Each r As DataGridViewRow In DataGridView1.Rows
   If r.IsNewRow Then Exit For
   Dim t = CDate(r.Cells(4).Value) - CDate(r.Cells(3).Value)
   r.Cells(5).Value = String.Format("{0:00}:{1:00}", t.Hours, t.Minutes)
Next
في حال عدم وجود am/pm في وقت الحضور او وقت الانصراف فسيعتبر الوقت بنظام 24h
(29-11-21, 10:35 AM)E100 كتب : [ -> ]يسمحلي اخي سعود بهذا التعديل
يعمل سواء ب am/pm او بدونها لاي خلية
كود :
For Each r As DataGridViewRow In DataGridView1.Rows
   If r.IsNewRow Then Exit For
   Dim t = CDate(r.Cells(4).Value) - CDate(r.Cells(3).Value)
   r.Cells(5).Value = String.Format("{0:00}:{1:00}", t.Hours, t.Minutes)
Next
في حال عدم وجود am/pm في وقت الحضور او وقت الانصراف فسيعتبر الوقت بنظام 24h

تمام تسلم  اخي الغالي  
                                       E100
الكود الخاص لك يعمل 

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

الخاص بعد التعديل :
      
كود :
     For Each row As DataGridViewRow In DataGridView1.Rows
           If row.IsNewRow = False Then
               Dim TotalMinit As Integer = 0
               Dim TotalHour As Integer = 0
               TotalMinit = DateDiff(DateInterval.Minute, row.Cells(3).Value, row.Cells(4).Value)  ' حساب الفرق بالساعة بين الحضور والانصراف
               If TotalMinit > 59 Then
                   TotalHour += Math.Floor(TotalMinit / 60)
                   TotalMinit = TotalMinit Mod 60
                   Dim TotalTime As String = TotalHour.ToString("00") & ":" & TotalMinit.ToString("00")
                   row.Cells(5).Value = TotalTime
               Else
                   row.Cells(5).Value = "00:" & TotalMinit.ToString("00")
                   'row.Cells(5).Value = "00"
               End If
           End If
       Next
لكن محتاج طلب اخر لمواصلة العمل 
ازاى اقدر اعمل استعلام عن الوقت الدخول فقط اللى هو اقل من الساعة 05:30 مساء
علشان الداتا متسجلة  فى قاعدة البيانات بالشكل دة 
1/1/22021 08:30
1/1/2021 05:30
كود :
Dim t = If(CDate(r.Cells(4).Value) < CDate(r.Cells(3).Value), CDate(r.Cells(4).Value).AddHours(12), CDate(r.Cells(4).Value)) - CDate(r.Cells(3).Value)
الصفحات : 1 2