للأسف هذه المشكلة تم حلها بإستخدام مكتبة مصممة للعمل على بيئة سي شارب .
قمت بتحويل الأكواد والتصحيح فيها ثم تحميل المكتبة بداخل المشروع.
كود :
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