private void navigateToMonth(int month, int year) { CalendarDisplayDays.Clear(); var now = new DateTime(year, month, 1, 0, 0, 0); var dayNumber = now.Day; var firstDayOfMonth = new DateTime(now.Year, now.Month, 1); var daysInCurrentMonth = getDaysInMonth(now.Month, now.Year); var lastDayOfMonth = new DateTime(now.Year, now.Month, daysInCurrentMonth); var startOffset = (int)firstDayOfMonth.DayOfWeek; var endOffset = 6 - startOffset - 1; var currentCreationDate = firstDayOfMonth.AddDays(-startOffset); var xPosition = 0; var yPosition = 0; for (var x = 0; x < startOffset; x++) { if (xPosition >= 6) { xPosition = -1; yPosition++; } xPosition++; CalendarDisplayDays.Add(new CalendarDayData(currentCreationDate, now.Month, xPosition, yPosition)); currentCreationDate = currentCreationDate.AddDays(1); } for (var x = 0; x < daysInCurrentMonth; x++) { if (xPosition >= 6) { xPosition = -1; yPosition++; } xPosition++; CalendarDisplayDays.Add(new CalendarDayData(currentCreationDate, now.Month, xPosition, yPosition)); currentCreationDate = currentCreationDate.AddDays(1); } for (var x = 0; x < endOffset; x++) { if (xPosition >= 6) { xPosition = -1; yPosition++; } xPosition++; CalendarDisplayDays.Add(new CalendarDayData(currentCreationDate, now.Month, xPosition, yPosition)); currentCreationDate = currentCreationDate.AddDays(1); } ActiveMonthNumber = now.Month; ActiveYearNumber = now.Year; }
internal Task Handle(CalendarDisplayDays setCalendarDays) { _calendarState.SetEnabled(true); return(_calendarState.GetEventsAsync(setCalendarDays.NumberOfDays)); }