/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { var calculationDay = DateTimeFactory.FindLastDay(year, 5, DayOfWeek.Monday); 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, 2, 1); calculationDay = OccurrenceHelper.FindOccurrenceOfDayOfWeek(calculationDay, DayOfWeek.Monday, 3); 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, 5, 24); while (calculationDay.DayOfWeek != DayOfWeek.Monday) { calculationDay = calculationDay.AddDays(-1); } return(DailyAnswerBuilder .Create(Name, HolidayType) .From(calculationDay) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { var builder = DailyAnswerBuilder.Create(Name, HolidayType); switch (year) { case 2016: builder.From(2016, 8, 25); break; case 2017: builder.From(2017, 8, 14); break; case 2018: builder.From(2018, 9, 2); break; case 2020: builder.From(2020, 8, 11); break; default: builder.From(year, 8, 24); break; } if (Since.HasValue) { builder.Since(Since.Value); } if (End.HasValue) { builder.End(End.Value); } if (TimeStepValue.HasValue) { builder.Times(TimeStepValue.Value); } builder.I18N(I18NIdentityCode); builder.Country(Country.ToCode(), GetRegionCodeList()); 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)) { return(DailyAnswerBuilder .Create(Name, HolidayType) .From(calculationDay) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); } return(null); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { var date = ChineseDateInfo.Of(year, 4, 1); var date15 = date.AddDays(-15); while (true) { if (date15.GetSolarTerm() == "春分") { break; } date = date.Tomorrow(); date15 = date15.Tomorrow(); } return(DailyAnswerBuilder.Create(Name, HolidayType).From(date.ToDateTime()).I18N(I18NIdentityCode).Build(year)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { if ((year - 2) % 6 == 0) { var date = DateTimeFactory.Create(year, 12, 1) .Shift(saturday => saturday.AddDays(-1), sunday => sunday.AddDays(1)); return(DailyAnswerBuilder .Create(Name, HolidayType) .From(date) .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)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { DateTime calculationDay; if (year == 2020) { //https://www.bbc.co.uk/news/uk-48565417 calculationDay = DateTimeFactory.FindDay(year, 5, DayOfWeek.Friday, 2); } else { calculationDay = DateTimeFactory.OffsetByWeek(year, 5, 2, DayOfWeek.Monday); } return(DailyAnswerBuilder .Create(Name, HolidayType) .From(calculationDay) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { var caculationDate = DateTimeFactory.Create(year, 12, 26); bool isSundayOrMonday = caculationDate.DayOfWeek == DayOfWeek.Sunday || caculationDate.DayOfWeek == DayOfWeek.Monday; caculationDate = caculationDate.Shift(saturday => saturday.AddDays(2), sunday => sunday.AddDays(1)); if (isSundayOrMonday) { caculationDate = caculationDate.AddDays(1); } return(DailyAnswerBuilder .Create(Name, HolidayType) .From(caculationDate) .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); }
/// <inheritdoc /> public override DailyAnswer ToDailyAnswer(int year) { if ((year - 1) % 4 == 0) { DailyAnswerBuilder builder; if (year >= 1937) { builder = DailyAnswerBuilder.Create(Name, HolidayType).From(year, 1, 20); } else { builder = DailyAnswerBuilder.Create(Name, HolidayType).From(year, 3, 4); } return(builder .Country(Country.ToCode(), GetRegionCodeList()) .I18N(I18NIdentityCode) .Build(year)); } return(null); }