private DateRule(string name, DateType type, YearRule yearRule, MonthRule monthRule, DayRule dayRule)
 {
     Name      = name;
     Type      = type;
     YearRule  = yearRule;
     MonthRule = monthRule;
     DayRule   = dayRule;
 }
            public bool Eval(DateTime date)
            {
                if (!YearRule.Eval(date))
                {
                    return(false);
                }
                if (!MonthRule.Eval(date))
                {
                    return(false);
                }
                if (!DayRule.Eval(date))
                {
                    return(false);
                }

                return(true);
            }
 public static DateRule NationalHoliday(string name, YearRule yearRule, MonthRule monthRule, DayRule dayRule) =>
 new DateRule(name, DateType.NationalHoliday, yearRule, monthRule, dayRule);
 public static DateRule SubstituteHoliday(string name, YearRule yearRule, MonthRule monthRule, DayRule dayRule) =>
 new DateRule(name, DateType.SubstituteHoliday, yearRule, monthRule, dayRule);
 public YearRuleTest()
 {
     _yearRule = new YearRule(2000, 10);
 }