FarsiLibrary.Win.DevExpress.PersianCalendarObjectViewInfo.CalcCalendarEndDate C# (CSharp) Method

CalcCalendarEndDate() protected method

protected CalcCalendarEndDate ( ) : System.DateTime
return System.DateTime
        protected override DateTime CalcCalendarEndDate()
        {
            var pd = (PersianDate)DateTime;
            switch (Calendar.View)
            {
                case DateEditCalendarViewType.MonthInfo:
                case DateEditCalendarViewType.QuarterInfo:
                    return new PersianDate(pd.Year, pd.Month, pc.GetDaysInMonth(pd.Year, pd.Month), 23, 59, 59);
                case DateEditCalendarViewType.YearInfo:
                    return new PersianDate(pd.Year, 12, pc.GetDaysInMonth(pd.Year, 12), 23, 59, 59);
                case DateEditCalendarViewType.YearsInfo:
                {
                    var year = Math.Min(PersianDate.MaxValue.Year, pd.Year + 9);
                    return new PersianDate(year, 12, pc.GetDaysInMonth(year, 12), 23, 59, 59);
                }
                case DateEditCalendarViewType.YearsGroupInfo:
                {
                    var year = Math.Min(PersianDate.MaxValue.Year, pd.Year + 99);
                    return new PersianDate(year, 12, pc.GetDaysInMonth(year, 12), 23, 59, 59);
                }
                default:
                    return Calendar.MaxValue;
            }
        }