11namespace DateRecurrenceR ;
22
3- public sealed class WeekDays
3+ /// <summary>
4+ /// Represents weekdays for one week.
5+ /// </summary>
6+ public struct WeekDays
47{
58#if NET8_0_OR_GREATER
69 private readonly WeekDaysArray _ds ;
710#else
811 private readonly bool [ ] _ds = new bool [ DaysInWeek ] ;
912#endif
1013
11- public WeekDays ( DayOfWeek day1 )
12- : this ( day1 , day1 )
14+ /// <summary>
15+ /// Create an instance with one defined day of the week.
16+ /// </summary>
17+ /// <param name="day"><see cref="DayOfWeek" /></param>
18+ public WeekDays ( DayOfWeek day )
19+ : this ( day , day )
1320 {
1421 }
1522
23+ /// <summary>
24+ /// Create an instance with two defined days of the week.
25+ /// </summary>
26+ /// <param name="day1"><see cref="DayOfWeek" /></param>
27+ /// <param name="day2"><see cref="DayOfWeek" /></param>
28+
1629 public WeekDays ( DayOfWeek day1 , DayOfWeek day2 )
1730 : this ( day1 , day2 , day2 )
1831 {
1932 }
2033
34+ /// <summary>
35+ /// Create an instance with three defined days of the week.
36+ /// </summary>
37+ /// <param name="day1"><see cref="DayOfWeek" /></param>
38+ /// <param name="day2"><see cref="DayOfWeek" /></param>
39+ /// <param name="day3"><see cref="DayOfWeek" /></param>
2140 public WeekDays ( DayOfWeek day1 , DayOfWeek day2 , DayOfWeek day3 )
2241 : this ( day1 , day2 , day3 , day3 )
2342 {
2443 }
2544
45+ /// <summary>
46+ /// Create an instance with four defined days of the week.
47+ /// </summary>
48+ /// <param name="day1"><see cref="DayOfWeek" /></param>
49+ /// <param name="day2"><see cref="DayOfWeek" /></param>
50+ /// <param name="day3"><see cref="DayOfWeek" /></param>
51+ /// <param name="day4"><see cref="DayOfWeek" /></param>
2652 public WeekDays ( DayOfWeek day1 , DayOfWeek day2 , DayOfWeek day3 , DayOfWeek day4 )
2753 : this ( day1 , day2 , day3 , day4 , day4 )
2854 {
2955 }
3056
57+ /// <summary>
58+ /// Create an instance with five defined days of the week.
59+ /// </summary>
60+ /// <param name="day1"><see cref="DayOfWeek" /></param>
61+ /// <param name="day2"><see cref="DayOfWeek" /></param>
62+ /// <param name="day3"><see cref="DayOfWeek" /></param>
63+ /// <param name="day4"><see cref="DayOfWeek" /></param>
64+ /// <param name="day5"><see cref="DayOfWeek" /></param>
3165 public WeekDays ( DayOfWeek day1 , DayOfWeek day2 , DayOfWeek day3 , DayOfWeek day4 , DayOfWeek day5 )
3266 : this ( day1 , day2 , day3 , day4 , day5 , day5 )
3367 {
3468 }
3569
70+ /// <summary>
71+ /// Create an instance with six defined days of the week.
72+ /// </summary>
73+ /// <param name="day1"><see cref="DayOfWeek" /></param>
74+ /// <param name="day2"><see cref="DayOfWeek" /></param>
75+ /// <param name="day3"><see cref="DayOfWeek" /></param>
76+ /// <param name="day4"><see cref="DayOfWeek" /></param>
77+ /// <param name="day5"><see cref="DayOfWeek" /></param>
78+ /// <param name="day6"><see cref="DayOfWeek" /></param>
3679 public WeekDays ( DayOfWeek day1 , DayOfWeek day2 , DayOfWeek day3 , DayOfWeek day4 , DayOfWeek day5 , DayOfWeek day6 )
3780 : this ( day1 , day2 , day3 , day4 , day5 , day6 , day6 )
3881 {
3982 }
4083
41- #if NET8_0_OR_GREATER
42- public WeekDays ( WeekDaysArray daysArray )
43- {
44- MinDay = ( DayOfWeek ) DaysInWeek ;
45-
46- _ds = daysArray ;
47-
48- UpdateMinDay ( ) ;
49- }
50- #endif
51-
84+ /// <summary>
85+ /// Create an instance with seven defined days of the week.
86+ /// </summary>
87+ /// <param name="day1"><see cref="DayOfWeek" /></param>
88+ /// <param name="day2"><see cref="DayOfWeek" /></param>
89+ /// <param name="day3"><see cref="DayOfWeek" /></param>
90+ /// <param name="day4"><see cref="DayOfWeek" /></param>
91+ /// <param name="day5"><see cref="DayOfWeek" /></param>
92+ /// <param name="day6"><see cref="DayOfWeek" /></param>
93+ /// <param name="day7"><see cref="DayOfWeek" /></param>
5294 public WeekDays ( DayOfWeek day1 ,
5395 DayOfWeek day2 ,
5496 DayOfWeek day3 ,
@@ -70,29 +112,61 @@ public WeekDays(DayOfWeek day1,
70112 UpdateMinDay ( ) ;
71113 }
72114
73- public WeekDays ( bool day1 ,
74- bool day2 ,
75- bool day3 ,
76- bool day4 ,
77- bool day5 ,
78- bool day6 ,
79- bool day7 )
115+ #if NET8_0_OR_GREATER
116+ /// <summary>
117+ /// Create an instance with seven predefined days of the week.
118+ /// </summary>
119+ /// <param name="daysArray"><see cref="WeekDaysArray" /></param>
120+ public WeekDays ( WeekDaysArray daysArray )
121+ {
122+ MinDay = ( DayOfWeek ) DaysInWeek ;
123+
124+ _ds = daysArray ;
125+
126+ UpdateMinDay ( ) ;
127+ }
128+ #endif
129+
130+ /// <summary>
131+ /// Create an instance with seven defined days of the week.
132+ /// </summary>
133+ /// <param name="isSunday">Set this parameter to True for Sunday.</param>
134+ /// <param name="isMonday">Set this parameter to True for Monday.</param>
135+ /// <param name="isTuesday">Set this parameter to True for Tuesday.</param>
136+ /// <param name="isWednesday">Set this parameter to True for Wednesday.</param>
137+ /// <param name="isThursday">Set this parameter to True for Thursday.</param>
138+ /// <param name="isFriday">Set this parameter to True for Friday.</param>
139+ /// <param name="isSaturday">Set this parameter to True for Saturday.</param>
140+ public WeekDays ( bool isSunday ,
141+ bool isMonday ,
142+ bool isTuesday ,
143+ bool isWednesday ,
144+ bool isThursday ,
145+ bool isFriday ,
146+ bool isSaturday )
80147 {
81148 MinDay = ( DayOfWeek ) DaysInWeek ;
82149
83- _ds [ 0 ] = day1 ;
84- _ds [ 1 ] = day2 ;
85- _ds [ 2 ] = day3 ;
86- _ds [ 3 ] = day4 ;
87- _ds [ 4 ] = day5 ;
88- _ds [ 5 ] = day6 ;
89- _ds [ 6 ] = day7 ;
150+ _ds [ 0 ] = isSunday ;
151+ _ds [ 1 ] = isMonday ;
152+ _ds [ 2 ] = isTuesday ;
153+ _ds [ 3 ] = isWednesday ;
154+ _ds [ 4 ] = isThursday ;
155+ _ds [ 5 ] = isFriday ;
156+ _ds [ 6 ] = isSaturday ;
90157
91158 UpdateMinDay ( ) ;
92159 }
93160
161+ /// <summary>
162+ /// Returns a minimal defined day of the week.
163+ /// </summary>
94164 public DayOfWeek MinDay { get ; private set ; }
95165
166+ /// <summary>
167+ /// Returns whether the day of the week has been defined.
168+ /// </summary>
169+ /// <param name="dayOfWeek"></param>
96170 public bool this [ DayOfWeek dayOfWeek ] => _ds [ ( int ) dayOfWeek ] ;
97171
98172 private void UpdateMinDay ( )
0 commit comments