private static string GetWeekdayHumanText(IList <ByDay> daysOfWeek, WeekdayHumanTextOptions options)
        {
            if (!daysOfWeek.Any())
            {
                return(null);
            }

            return(GetWeekdayHumanText(daysOfWeek.Where(dow => !dow.Ordinal.HasValue).Select(dow => dow.DayOfWeek).ToList(), ", ", " and ", options));
        }
        private static string GetWeekdayHumanText(IList <DayOfWeek> daysOfWeek, string separator = ", ", string lastSeparator = " and ", WeekdayHumanTextOptions options = WeekdayHumanTextOptions.None)
        {
            if (options.HasFlag(WeekdayHumanTextOptions.AbbrWeekdays) && IsWeekday(daysOfWeek))
            {
                if (options.HasFlag(WeekdayHumanTextOptions.Plural))
                {
                    return("weekdays");
                }
                return("weekday");
            }

            if (options.HasFlag(WeekdayHumanTextOptions.AbbrDays) && IsFullWeek(daysOfWeek))
            {
                if (options.HasFlag(WeekdayHumanTextOptions.Plural))
                {
                    return("days");
                }
                return("day");
            }

            if (options.HasFlag(WeekdayHumanTextOptions.AbbrWeekendDays) && IsWeekendDay(daysOfWeek))
            {
                if (options.HasFlag(WeekdayHumanTextOptions.Plural))
                {
                    return("weekend days");
                }
                return("weekend day");
            }

            return(ListToHumanText(EnglishCultureInfo, daysOfWeek, separator, lastSeparator));
        }
        private static string GetWeekdayHumanText(ICollection <DayOfWeek> daysOfWeek, string separator = ", ", string lastSeparator = " et ", WeekdayHumanTextOptions options = WeekdayHumanTextOptions.None)
        {
            if (options.HasFlag(WeekdayHumanTextOptions.AbbrWeekdays) && IsWeekday(daysOfWeek))
            {
                if (options.HasFlag(WeekdayHumanTextOptions.Plural))
                {
                    return("jours de semaine");
                }
                return("jour de semaine");
            }

            if (options.HasFlag(WeekdayHumanTextOptions.AbbrDays) && IsFullWeek(daysOfWeek))
            {
                if (options.HasFlag(WeekdayHumanTextOptions.Plural))
                {
                    return("jours");
                }
                return("jour");
            }

            if (options.HasFlag(WeekdayHumanTextOptions.AbbrWeekendDays) && IsWeekendDay(daysOfWeek))
            {
                if (options.HasFlag(WeekdayHumanTextOptions.Plural))
                {
                    return("jours de weekend");
                }
                return("jour de weekend");
            }

            return(ListToHumanText(FrenchCultureInfo, daysOfWeek.Select(DayOfWeekToString).ToList(), separator, lastSeparator));
        }