private int GetWeekIndex(DateTime start, DateTime current)
        {
            DateTime firstWeekStart = CalendarHelper.GetFirstDayOfWeek(start, this.FirstDayOfWeek);
            TimeSpan fromStart      = current.Subtract(firstWeekStart);

            return(fromStart.Days / 7);
        }
        private static bool MatchDayOrdinalNegative(DateTime date, int dayOrdinal, RecurrenceDays dayOfWeekMask)
        {
            DateTime currentDate = CalendarHelper.GetEndOfMonth(date.Year, date.Month);
            int      current     = 0;

            while (date < currentDate)
            {
                if (MatchDayOfWeekMask(currentDate, dayOfWeekMask))
                {
                    current--;
                }

                currentDate = currentDate.AddDays(-1);
            }

            return(current == dayOrdinal);
        }