تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] حساب توقيتات الراحة على مدار اليوم
#1
السلام عليكم و رحمة الله وبركاته
برجاء المساعدة ... عندي توقيتات عمل الموظفين على مدار اليوم وأحتاج لحساب توقيتات الراحة بين تلك الاوقات
مثال :
StartTime 1= 08:00:00
EndTime1= 10:00:00


SrartTime2= 09:00:00
EndTime2= 10:00:00

المطلوب حساب الفجوات في التوقيت لتكون النتيجة كالاتي

Time gap 1= 00:00:00 - 07:59:59
Time gap 2= 10:00:01 - 23:59:59

حيث يوجد تداخل بين التوقيت الأول والثاني
غير موجود بالمنتدى لفترات طويلة بسبب ظروف العمل
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته

ان شاء الله يكون الدرس التالي مفيد لك

http://vb4arb.com/vb/showthread.php?tid=28655
الرد }}}
تم الشكر بواسطة: عبد العزيز البسكري , khattabcosmology
#3
الأخ أحمد النجار
أشكرك على الشرح الوافي
للأسف هذه المشكلة تم حلها بإستخدام مكتبة مصممة للعمل على بيئة سي شارب .
قمت بتحويل الأكواد والتصحيح فيها ثم تحميل المكتبة بداخل المشروع.
إسم المكتبة : ITenso.timeperiod
الأكواد بعد التعديل كالأتي :


كود :
Imports System
Imports Itenso.TimePeriod


Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       ' Date_Time_Intersections
       Dim periods As TimePeriodCollection = New TimePeriodCollection()
       periods.Add(New TimeRange(New DateTime(2011, 3, 1), New DateTime(2011, 3, 10)))
       periods.Add(New TimeRange(New DateTime(2011, 3, 5), New DateTime(2011, 3, 15)))
       periods.Add(New TimeRange(New DateTime(2011, 3, 12), New DateTime(2011, 3, 18)))
       periods.Add(New TimeRange(New DateTime(2011, 3, 20), New DateTime(2011, 3, 24)))
       periods.Add(New TimeRange(New DateTime(2011, 3, 22), New DateTime(2011, 3, 28)))
       periods.Add(New TimeRange(New DateTime(2011, 3, 24), New DateTime(2011, 3, 26)))
       Dim periodIntersector As TimePeriodIntersector(Of TimeRange) = New TimePeriodIntersector(Of TimeRange)()

       Dim intersectedPeriods As ITimePeriodCollection = periodIntersector.IntersectPeriods(periods)

       For Each intersectedPeriod As ITimePeriod In intersectedPeriods



           ListBox1.Items.Add(intersectedPeriod)
         

       Next

   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       'Date_Gapes
       Dim limits As TimeRange = New TimeRange(New DateTime(2011, 3, 1), New DateTime(2011, 3, 20))
       Dim gapCalculator As TimeGapCalculator(Of TimeRange) = New TimeGapCalculator(Of TimeRange)()

       Dim excludePeriods As TimePeriodCollection = New TimePeriodCollection()
       excludePeriods.Add(New TimeRange(New DateTime(2011, 3, 10), New DateTime(2011, 3, 15)))
       excludePeriods.Add(New TimeRange(New DateTime(2011, 3, 12), New DateTime(2011, 3, 17)))


       Dim gaps As ITimePeriodCollection = gapCalculator.GetGaps(excludePeriods, limits)

       For Each GetGaps As ITimePeriod In gaps

           ListBox1.Items.Add(GetGaps)
         
       Next
   End Sub

   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       'Date_Time_Gaps
       Dim limits As TimeRange = New TimeRange(New DateTime(2011, 3, 1, 0, 0, 0), New DateTime(2011, 3, 1, 23, 59, 59))
       Dim gapCalculator As TimeGapCalculator(Of TimeRange) = New TimeGapCalculator(Of TimeRange)()

       Dim excludePeriods As TimePeriodCollection = New TimePeriodCollection()
       excludePeriods.Add(New TimeRange(New DateTime(2011, 3, 1, 8, 0, 0), New DateTime(2011, 3, 1, 12, 30, 0)))
       excludePeriods.Add(New TimeRange(New DateTime(2011, 3, 1, 10, 0, 0), New DateTime(2011, 3, 1, 13, 0, 0)))


       Dim gaps As ITimePeriodCollection = gapCalculator.GetGaps(excludePeriods, limits)

       For Each GetGaps As ITimePeriod In gaps

           ListBox1.Items.Add(GetGaps)

       Next
   End Sub

   Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
       'Time_Gaps
       Dim limits As TimeRange = New TimeRange(TimeSerial(0, 0, 0), TimeSerial(23, 59, 59))
       Dim gapCalculator As TimeGapCalculator(Of TimeRange) = New TimeGapCalculator(Of TimeRange)()

       Dim excludePeriods As TimePeriodCollection = New TimePeriodCollection()
       excludePeriods.Add(New TimeRange(TimeSerial(8, 0, 0), TimeSerial(12, 30, 0)))
       excludePeriods.Add(New TimeRange(TimeSerial(10, 0, 0), TimeSerial(13, 0, 0)))


       Dim gaps As ITimePeriodCollection = gapCalculator.GetGaps(excludePeriods, limits)

       For Each GetGaps As ITimePeriod In gaps

           ListBox1.Items.Add(GetGaps)

       Next
   End Sub
End Class

ألف شكر وأتمنى أن يستفيد الجميع من هذا الكود
غير موجود بالمنتدى لفترات طويلة بسبب ظروف العمل
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  حساب عدد الطلاب محمد خيري 4 117 12-03-24, 02:07 PM
آخر رد: محمد خيري
  حساب المبلغ الإجمالي محمد خيري 2 300 30-01-24, 08:08 PM
آخر رد: محمد خيري
  [VB.NET] محتاج كود حساب الفرق بين تاريخين بالايام moustafakamel95 3 449 29-01-24, 04:05 PM
آخر رد: مصطفى مصطفى
  عندما اقوم بالاستعلام عن تاريخ معين بواسطة SELECT لايقوم بتحديد نفس تاريخ اليوم moh61 1 403 13-08-23, 01:06 PM
آخر رد: تركي الحلواني
  [VB.NET] حساب ايام اجازة بدون ايام الجمعة والسبت وعطلات البلد ahmed_king2023 0 453 05-06-23, 03:48 PM
آخر رد: ahmed_king2023
  حساب عدد الشهور بين تاريخين kebboud 4 623 12-04-23, 03:22 PM
آخر رد: kebboud
  [VB.NET] اريد طريقة حساب فرق بين تاريخ موجود في لست فيو وتاريخ الجهاز mac9 4 708 11-04-23, 10:23 AM
آخر رد: mac9
  حساب خانة في الداتا قريد فيو DOX.1 6 2,191 06-03-23, 01:18 AM
آخر رد: المتألق9
  حساب نقاط لكل مستخدم aldery 0 292 21-01-23, 12:32 AM
آخر رد: aldery
  [مثال] حساب عدد الصفوف، و مجموع حقل محدد من الجدول HUNTER25 3 586 22-12-22, 05:45 PM
آخر رد: HUNTER25

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


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