Public Class Meet Private _id As Integer Public ReadOnly Property id() As Integer Get Return _id End Get End Property Private _weekdays As New Dictionary(Of String, Boolean) Public ReadOnly Property weekdays() As Dictionary(Of String, Boolean) Get Return _weekdays End Get End Property Public Sub New(id As Integer) _id = id _weekdays.Add("monday", False) _weekdays.Add("tuesday", False) _weekdays.Add("wednesday", False) _weekdays.Add("thursday", False) _weekdays.Add("friday", False) _weekdays.Add("saturday", False) _weekdays.Add("sunday", False) End Sub Public Sub New(weekDayName As String, Optional weekDayName2 As String = Nothing, Optional weekDayName3 As String = Nothing, Optional weekDayName4 As String = Nothing, Optional weekDayName5 As String = Nothing, Optional weekDayName6 As String = Nothing, Optional weekDayName7 As String = Nothing) If Not weekDayName Is Nothing And _weekdays.ContainsKey(weekDayName.ToLower) Then _weekdays(weekDayName) = True End If If Not weekDayName2 Is Nothing And _weekdays.ContainsKey(weekDayName2.ToLower) Then _weekdays(weekDayName2) = True End If If Not weekDayName3 Is Nothing And _weekdays.ContainsKey(weekDayName3.ToLower) Then _weekdays(weekDayName3) = True End If If Not weekDayName4 Is Nothing And _weekdays.ContainsKey(weekDayName4.ToLower) Then _weekdays(weekDayName4) = True End If If Not weekDayName5 Is Nothing And _weekdays.ContainsKey(weekDayName5.ToLower) Then _weekdays(weekDayName5) = True End If If Not weekDayName6 Is Nothing And _weekdays.ContainsKey(weekDayName6.ToLower) Then _weekdays(weekDayName6) = True End If If Not weekDayName7 Is Nothing And _weekdays.ContainsKey(weekDayName7.ToLower) Then _weekdays(weekDayName7) = True End If End Sub Public Property monday() As Boolean Get Return _weekdays("monday") End Get Set(ByVal value As Boolean) _weekdays("monday") = value End Set End Property Public Property tuesday() As Boolean Get Return _weekdays("tuesday") End Get Set(ByVal value As Boolean) _weekdays("tuesday") = value End Set End Property Public Property wednesday() As Boolean Get Return _weekdays("wednesday") End Get Set(ByVal value As Boolean) _weekdays("wednesday") = value End Set End Property Public Property thursday() As Boolean Get Return _weekdays("thursday") End Get Set(ByVal value As Boolean) _weekdays("thursday") = value End Set End Property Public Property friday() As Boolean Get Return _weekdays("friday") End Get Set(ByVal value As Boolean) _weekdays("friday") = value End Set End Property Public Property saturday() As Boolean Get Return _weekdays("saturday") End Get Set(ByVal value As Boolean) _weekdays("saturday") = value End Set End Property Public Property sunday() As Boolean Get Return _weekdays("sunday") End Get Set(ByVal value As Boolean) _weekdays("sunday") = value End Set End Property Public Overrides Function toString() As String Return Me.monday + Me.tuesday + Me.wednesday + Me.thursday + Me.friday + Me.saturday + Me.sunday End Function Public Function overlap(anotherMeet As Meet) As Boolean If anotherMeet Is Nothing Then Return False Dim isOverlapped As Boolean = (Me.monday = True And anotherMeet.monday = True) Or (Me.tuesday = True And anotherMeet.tuesday = True) Or (Me.wednesday = True And anotherMeet.wednesday = True) Or (Me.thursday = True And anotherMeet.thursday = True) Or (Me.friday = True And anotherMeet.friday = True) Or (Me.saturday = True And anotherMeet.saturday = True) Or (Me.sunday = True And anotherMeet.sunday = True) Return isOverlapped End Function End Class