Esempio n. 1
0
        public static List <List <CalendarDay> > FillCalendarDays(DateTime value, FirstWeekDays firstWeekDay)
        {
            var weeks    = new List <List <CalendarDay> >();
            var startDay = GetFirstCalendarDate(value, firstWeekDay);

            var n = 0;

            for (var w = 1; w <= 6; w++)
            {
                var weekDays = new List <CalendarDay>();
                for (var d = 1; d <= 7; d++)
                {
                    var currentDay = startDay.AddDays(n);

                    var calendarDay = new CalendarDay()
                    {
                        Date = currentDay
                    };
                    calendarDay.IsActive       = calendarDay.Day == value.Day && calendarDay.Date.Month == value.Month;
                    calendarDay.IsAnotherMonth = calendarDay.Date.Month != value.Month;

                    weekDays.Add(calendarDay);

                    n++;
                }

                weeks.Add(weekDays);
            }

            return(weeks);
        }
Esempio n. 2
0
        public static DateTime GetFirstCalendarDate(DateTime value, FirstWeekDays firstWeekDay)
        {
            var startDay = new DateTime(value.Year, value.Month, 1);

            var shift = 0;

            if (firstWeekDay == FirstWeekDays.Sunday)
            {
                shift = (int)startDay.DayOfWeek;
            }
            else
            {
                shift = startDay.DayOfWeek == DayOfWeek.Sunday ? 6 : ((int)startDay.DayOfWeek) - 1;
            }

            startDay = startDay.AddDays(-shift);

            return(startDay);
        }