public NthDayOfWeekInMonthHoliday(string name, int count, DayOfWeek dayOfWeek, int month,
                                   CountDirection direction)
     : base(name)
 {
     this.count     = count;
     this.dayOfWeek = dayOfWeek;
     this.month     = month;
     this.direction = direction;
     dayCache       = new ConcurrentLazyDictionary <int, DateTime>();
 }
 public NthDayOfWeekAfterDayHoliday(string name, int count, DayOfWeek dayOfWeek, Holiday baseHoliday)
     : base(name)
 {
     if (count == 0)
     {
         throw new ArgumentException("count must not be 0", "count");
     }
     if (baseHoliday == null)
     {
         throw new ArgumentException("baseHoliday cannot be null", "baseHoliday");
     }
     this.count       = count;
     this.dayOfWeek   = dayOfWeek;
     this.baseHoliday = baseHoliday;
     dayCache         = new ConcurrentLazyDictionary <int, DateTime?>();
 }
 static EasterCalculator()
 {
     easterPerYear = new ConcurrentLazyDictionary <int, DateTime>();
 }
 protected HolidayStrategyBase()
 {
     holidaysObservancesCache = new ConcurrentLazyDictionary <int, IDictionary <DateTime, Holiday> >();
     this.InnerHolidays       = new List <Holiday>();
 }
 public EasterBasedHoliday(string name, int daysOffset)
     : base(name)
 {
     this.daysOffset = daysOffset;
     dayCache        = new ConcurrentLazyDictionary <int, DateTime>();
 }