/// <summary>
        /// Updates the display date.
        /// </summary>
        /// <param name="c">Calendar instance.</param>
        /// <param name="addedDate">Added date.</param>
        /// <param name="removedDate">Removed date.</param>
        private static void UpdateDisplayDate(Calendar c, DateTime addedDate, DateTime removedDate)
        {
            Debug.Assert(c != null, "c should not be null!");

            // If DisplayDate < DisplayDateStart, DisplayDate = DisplayDateStart
            if (DateTime.Compare(addedDate, c.DisplayDateRangeStart) < 0)
            {
                c.DisplayDate = c.DisplayDateRangeStart;
                return;
            }

            // If DisplayDate > DisplayDateEnd, DisplayDate = DisplayDateEnd
            if (DateTime.Compare(addedDate, c.DisplayDateRangeEnd) > 0)
            {
                c.DisplayDate = c.DisplayDateRangeEnd;
                return;
            }

            c.DisplayDateInternal = DateTimeHelper.DiscardDayTime(addedDate);
            c.UpdateMonths();
            c.OnDisplayDate(new CalendarDateChangedEventArgs(removedDate, addedDate));
        }