/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { DateTime calculationDay; if (year >= 2007 && year <= 2009) { calculationDay = DateTimeFactory.FindNextDay(year, 11, 1, DayOfWeek.Tuesday); } else { //2010+ first Monday of the September/October school holidays //if coincides with Labour day, moves to 2nd Monday var facDay = DateTimeFactory.FindNextDay(year, 9, 25, DayOfWeek.Monday); if (facDay == DateTimeFactory.FindNextDay(year, 10, 1, DayOfWeek.Monday)) { facDay = facDay.AddDays(7); } calculationDay = facDay; } return(DailyAnswerBuilder .Create(Name, HolidayType) .From(calculationDay) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { var calculationDay = DateTimeFactory.Create(year, 9, 24); if (calculationDay.DayOfWeek == DayOfWeek.Sunday) { calculationDay = DateTimeFactory.FindNextDay(calculationDay, DayOfWeek.Monday); } var builder = DailyAnswerBuilder .Create(Name, HolidayType) .From(calculationDay); if (Since.HasValue) { builder.Since(Since.Value); } if (End.HasValue) { builder.End(End.Value); } if (TimeStepValue.HasValue) { builder.Times(TimeStepValue.Value); } builder.Country(Country.ToCode(), GetRegionCodeList()); return(builder.I18N(I18NIdentityCode).Build(year)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { return(DailyAnswerBuilder .Create(Name, HolidayType) .From(DateTimeFactory.FindNextDay(year, 3, 1, DayOfWeek.Monday).AddDays(7)) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { var calculationDay = DateTimeFactory.FindNextDay(year, 4, 19, DayOfWeek.Thursday); var builder = DailyAnswerBuilder .Create(Name, HolidayType) .From(calculationDay) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode); return(builder.Build(year)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { var calculationDay = DateTimeFactory.Create(year, 1, 1); //当元旦为周末时,使用 Region 定义器来定义 if (WeekendManager.GetWeekendDictionary(CountryCode.GB).IsWeekend(calculationDay)) { calculationDay = DateTimeFactory.FindNextDay(year, 1, 1, DayOfWeek.Monday); return(DailyAnswerBuilder .Create(Name, HolidayType) .From(calculationDay) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); } return(null); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { DateTime calculationTime; if (year == 2012 || year >= 2016) { calculationTime = DateTimeFactory.FindNextDay(year, 10, 1, DayOfWeek.Monday); } else { calculationTime = DateTimeFactory.OffsetByWeek(year, 6, 2, DayOfWeek.Monday); } return(DailyAnswerBuilder .Create(Name, HolidayType) .From(calculationTime) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); }