mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
29 lines
819 B
C#
29 lines
819 B
C#
using CanvasModel.EnrollmentTerms;
|
|
|
|
public class SemesterPlanner
|
|
{
|
|
public DateTime FirstDay { get; }
|
|
public DateTime LastDay { get; }
|
|
|
|
public IEnumerable<CalendarMonth> Months { get; }
|
|
public IEnumerable<DayOfWeek> Days { get; }
|
|
public SemesterPlanner(SemesterCalendarConfig configuration)
|
|
{
|
|
FirstDay = configuration.StartDate;
|
|
LastDay = configuration.EndDate;
|
|
|
|
var monthsInTerm =
|
|
1 + ((LastDay.Year - FirstDay.Year) * 12)
|
|
+ LastDay.Month - FirstDay.Month;
|
|
|
|
Months = Enumerable
|
|
.Range(0, monthsInTerm)
|
|
.Select(monthDiff =>
|
|
{
|
|
var month = ((FirstDay.Month + monthDiff - 1) % 12) + 1;
|
|
var year = FirstDay.Year + ((FirstDay.Month + monthDiff - 1) / 12);
|
|
return new CalendarMonth(year, month);
|
|
});
|
|
Days = configuration.Days;
|
|
}
|
|
} |