/// <summary> /// Convert to <see cref="DailyAnswer"/> /// </summary> /// <param name="year"></param> /// <returns></returns> public override DailyAnswer ToDailyAnswer(int year) { var date = DateTimeFactory.OffsetByWeek(year, 7, 1, DayOfWeek.Monday).AddDays(1); var builder = DailyAnswerBuilder.Create(Name, HolidayType).From(date); 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) { 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)); }