public void TestTurkey() { var publicHolidays = DateSystem.GetPublicHolidays(2017, CountryCode.TR).ToArray(); //New Year's Day Assert.AreEqual(new DateTime(2017, 1, 1), publicHolidays[0].Date); //National Independence & Children's Day Assert.AreEqual(new DateTime(2017, 4, 23), publicHolidays[1].Date); //Labour Day Assert.AreEqual(new DateTime(2017, 5, 1), publicHolidays[2].Date); //Atatürk Commemoration & Youth Day Assert.AreEqual(new DateTime(2017, 5, 19), publicHolidays[3].Date); //Democracy Day Assert.AreEqual(new DateTime(2017, 7, 15), publicHolidays[4].Date); //Victory Day Assert.AreEqual(new DateTime(2017, 8, 30), publicHolidays[5].Date); //Republic Day Assert.AreEqual(new DateTime(2017, 10, 29), publicHolidays[6].Date); }
public void Check_AutumnalEquinoxDay(int year, int expectedYear, int expectedMonth, int expectedDay) { var publicHolidays = DateSystem.GetPublicHolidays(year, CountryCode.JP).ToArray(); var publicHoliday = publicHolidays.Where(o => o.Name == "Autumnal Equinox Day").SingleOrDefault(); Assert.AreEqual(new DateTime(expectedYear, expectedMonth, expectedDay), publicHoliday.Date); }
public void TestChina2019() { var publicHolidays = DateSystem.GetPublicHolidays(2019, CountryCode.CN).ToArray(); Assert.IsTrue(publicHolidays.Any(o => o.Date == new DateTime(2019, 9, 13) && o.Name == "Mid-Autumn Festival")); Assert.IsTrue(publicHolidays.Any(o => o.Date == new DateTime(2019, 4, 5) && o.Name == "Qingming Festival (Tomb-Sweeping Day)")); }
public void TestCanada() { var publicHolidays = DateSystem.GetPublicHolidays(2017, CountryCode.CA).ToArray(); //New Year's Day Assert.AreEqual(new DateTime(2017, 1, 1), publicHolidays[0].Date); }
public void TestHungaryHoliday2018() { var publicHolidays = DateSystem.GetPublicHolidays(2018, CountryCode.HU).ToArray(); //New Year's Day Assert.AreEqual(new DateTime(2018, 1, 1), publicHolidays[0].Date); //1848 Revolution Memorial Day Assert.AreEqual(new DateTime(2018, 3, 15), publicHolidays[1].Date); //Good Friday Assert.AreEqual(new DateTime(2018, 3, 30), publicHolidays[2].Date); //Easter Sunday Assert.AreEqual(new DateTime(2018, 4, 1), publicHolidays[3].Date); //Easter Monday Assert.AreEqual(new DateTime(2018, 4, 2), publicHolidays[4].Date); //Labour day Assert.AreEqual(new DateTime(2018, 5, 1), publicHolidays[5].Date); //Pentecost Assert.AreEqual(new DateTime(2018, 5, 20), publicHolidays[6].Date); //Whit Monday Assert.AreEqual(new DateTime(2018, 5, 21), publicHolidays[7].Date); //State Foundation Day Assert.AreEqual(new DateTime(2018, 8, 20), publicHolidays[8].Date); //1956 Revolution Memorial Day Assert.AreEqual(new DateTime(2018, 10, 23), publicHolidays[9].Date); //All Saints Day Assert.AreEqual(new DateTime(2018, 11, 1), publicHolidays[10].Date); //Christmas Day Assert.AreEqual(new DateTime(2018, 12, 25), publicHolidays[11].Date); //St. Stephen's Day Assert.AreEqual(new DateTime(2018, 12, 26), publicHolidays[12].Date); }
public ActionResult <IEnumerable <RegionStatisticDto> > RegionStatistic() { var countryCodes = (CountryCode[])Enum.GetValues(typeof(CountryCode)); var availableCountryCodes = from CountryCode countryCode in countryCodes where DateSystem.GetPublicHolidays(DateTime.Today.Year, countryCode).Any() select countryCode; var missingCountryCodes = countryCodes.Except(availableCountryCodes); var availableCountries = availableCountryCodes.Select(o => this._countryProvider.GetCountry(o.ToString())); var missingCountries = missingCountryCodes.Select(o => this._countryProvider.GetCountry(o.ToString())); var regions = (Region[])Enum.GetValues(typeof(Region)); var regionStatistic = from Region region in regions where region != Region.None select new RegionStatisticDto { RegionName = region.ToString(), AvailableCountries = availableCountries.Where(o => o.Region == region) .Select(o => CountryHelper.Convert(o)) .OrderBy(o => o.CommonName) .ToArray(), MissingCountries = missingCountries.Where(o => o.Region == region) .Select(o => CountryHelper.Convert(o)) .OrderBy(o => o.CommonName) .ToArray(), }; return(View(regionStatistic)); }
public void CheckCounties() { foreach (CountryCode countryCode in Enum.GetValues(typeof(CountryCode))) { var provider = DateSystem.GetPublicHolidayProvider(countryCode); if (provider is ICountyProvider countyProvider) { var counties = countyProvider.GetCounties(); var publicHolidays = DateSystem.GetPublicHolidays(DateTime.Now.Year, countryCode); foreach (var publicHoliday in publicHolidays) { if (publicHoliday.Counties == null) { continue; } if (publicHoliday.Counties.Count(o => counties.Keys.Contains(o)) != publicHoliday.Counties.Length) { var diff = publicHoliday.Counties.Except(counties.Keys); Assert.Fail($"Unknown countie in {provider} {string.Join(",", diff)}"); } } } } }
public void TestAustria() { var publicHolidays = DateSystem.GetPublicHolidays(2017, CountryCode.AT).ToArray(); //New Year's Day Assert.AreEqual(new DateTime(2017, 1, 1), publicHolidays[0].Date); //Epiphany Assert.AreEqual(new DateTime(2017, 1, 6), publicHolidays[1].Date); //Easter Monday Assert.AreEqual(new DateTime(2017, 4, 17), publicHolidays[2].Date); //National Holiday Assert.AreEqual(new DateTime(2017, 5, 1), publicHolidays[3].Date); //Ascension Day Assert.AreEqual(new DateTime(2017, 5, 25), publicHolidays[4].Date); //Whit Monday Assert.AreEqual(new DateTime(2017, 6, 5), publicHolidays[5].Date); //Corpus Christi Assert.AreEqual(new DateTime(2017, 6, 15), publicHolidays[6].Date); //Assumption Day Assert.AreEqual(new DateTime(2017, 8, 15), publicHolidays[7].Date); //National Holiday Assert.AreEqual(new DateTime(2017, 10, 26), publicHolidays[8].Date); //All Saints' Day Assert.AreEqual(new DateTime(2017, 11, 1), publicHolidays[9].Date); //Immaculate Conception Assert.AreEqual(new DateTime(2017, 12, 8), publicHolidays[10].Date); //Christmas Day Assert.AreEqual(new DateTime(2017, 12, 25), publicHolidays[11].Date); //St. Stephen's Day Assert.AreEqual(new DateTime(2017, 12, 26), publicHolidays[12].Date); }
public void CheckQueensBirthdayFor2021() { var publicHolidays = DateSystem.GetPublicHolidays(2021, CountryCode.PG).ToArray(); var publicHoliday = publicHolidays.FirstOrDefault(holiday => holiday.Name.Equals("Queen's Birthday")); Assert.AreEqual(new DateTime(2021, 6, 14), publicHoliday.Date); }
private void CheckPublicHolidayWithDateFilter1(DateTime startDate, DateTime endDate) { var items = DateSystem.GetPublicHolidays(startDate, endDate, CountryCode.DE); Assert.AreEqual(43, items.Count()); Assert.IsTrue(items.First().Date > new DateTime(2016, 4, 28)); Assert.IsTrue(items.Last().Date < new DateTime(2018, 6, 1)); }
public void TestSwitzerland() { for (var year = DateTime.Now.Year; year < 3000; year++) { var publicHolidays = DateSystem.GetPublicHolidays(year, CountryCode.CH); Assert.AreEqual(16, publicHolidays.Count()); } }
public void HolidayCount() { for (var year = 2018; year <= 2022; year++) { var publicHolidays = DateSystem.GetPublicHolidays(year, CountryCode.SG).ToArray(); Assert.AreEqual(7, publicHolidays.Length); } }
public void TestSpain() { for (var year = DateTime.Now.Year; year < 3000; year++) { var publicHolidays = DateSystem.GetPublicHolidays(year, CountryCode.ES); Assert.AreEqual(34, publicHolidays.Count()); } }
private static void Test2() { var publicHolidays = DateSystem.GetPublicHolidays(2017, CountryCode.CH); foreach (var publicHoliday in publicHolidays) { Console.WriteLine("{0:dd.MM.yyyy} {1} {2}", publicHoliday.Date, publicHoliday.LocalName, publicHoliday.Global); } }
public void TestGermanyCorpusChristi2026() { var yearToTest = 2026; var publicHolidays = DateSystem.GetPublicHolidays(yearToTest, CountryCode.DE); var corpusChristi = publicHolidays.First(x => x.LocalName == "Fronleichnam").Date; var expectedDate2026 = new DateTime(yearToTest, 6, 4); Assert.AreEqual(expectedDate2026, corpusChristi); }
public void TestGermanyCorpusChristi() { var yearToTest = 2017; var catholicProvider = new MockPublicHolidayProvider(new CatholicProvider()); var publicHolidays = DateSystem.GetPublicHolidays(yearToTest, CountryCode.DE); var easterSunday = catholicProvider.EasterSunday(yearToTest); var corpusChristi = publicHolidays.First(x => x.LocalName == "Fronleichnam").Date; Assert.AreEqual(easterSunday.AddDays(60), corpusChristi); }
public void CheckDayOfMadridIsThirdMayIn2021() { var yearToTest = 2021; var expectedDate2021 = new DateTime(2021, 5, 3); var publicHolidays = DateSystem.GetPublicHolidays(yearToTest, CountryCode.ES); var dayOfMadrid = publicHolidays.Where(publicHoliday => publicHoliday.Name == "Day of Madrid").FirstOrDefault(); Assert.AreEqual(expectedDate2021, dayOfMadrid.Date); }
public ActionResult <IEnumerable <CountryDto> > AvailableCountries() { var countries = from CountryCode o in Enum.GetValues(typeof(CountryCode)) where DateSystem.GetPublicHolidays(DateTime.Today.Year, o).Any() select new CountryDto { Key = o.ToString(), Value = this.GetCountryName(o) }; return(StatusCode(StatusCodes.Status200OK, countries)); }
public void PuertoRicoHasGoodFridayHoliday() { var holidays = DateSystem.GetPublicHolidays(2017, CountryCode.PR); var catholic = new MockPublicHolidayProvider(new CatholicProvider()); var expectedGoodFriday = catholic.EasterSunday(2017).AddDays(-2); var goodFriday = holidays.First(holiday => holiday.Name == "Good Friday"); Assert.IsNotNull(goodFriday); Assert.AreEqual(expectedGoodFriday.Day, goodFriday.Date.Day); }
public ActionResult <IEnumerable <PublicHolidayDto> > NextPublicHolidays([FromRoute][Required] string countryCode) { var publicHolidays = DateSystem.GetPublicHolidays(DateTime.Today, DateTime.Today.AddYears(1), countryCode); if (publicHolidays?.Count() > 0) { var items = publicHolidays.Where(o => o.Type.HasFlag(PublicHolidayType.Public)); return(StatusCode(StatusCodes.Status200OK, items.Adapt <PublicHolidayDto[]>())); } return(StatusCode(StatusCodes.Status404NotFound)); }
public static List <PublicHoliday> GetLateSummerBankHolidayNotScotland(DateTime startDate, DateTime endDate) { List <PublicHoliday> results = new List <PublicHoliday>(); PublicHoliday holiday = DateSystem.GetPublicHolidays(startDate, endDate, CountryCode.GB).Where(h => h.LocalName == "Summer Bank Holiday" && h.Counties != null && h.Counties.Contains("GB-ENG")).FirstOrDefault(); if (holiday != null) { results.Add(holiday); } return(results); }
public static List <PublicHoliday> GetJan2ndScotlandHoliday(DateTime startDate, DateTime endDate) { List <PublicHoliday> results = new List <PublicHoliday>(); PublicHoliday holiday = DateSystem.GetPublicHolidays(startDate, endDate, CountryCode.GB).Where(h => h.LocalName == "New Year's Day" && h.Counties != null && h.Counties.Contains("GB-SCT")).LastOrDefault(); if (holiday != null) { results.Add(holiday); } return(results); }
public static List <PublicHoliday> GetMayDay(DateTime startDate, DateTime endDate) { List <PublicHoliday> results = new List <PublicHoliday>(); PublicHoliday holiday = DateSystem.GetPublicHolidays(startDate, endDate, CountryCode.GB).Where(h => h.LocalName == "Early May Bank Holiday").FirstOrDefault(); if (holiday != null) { results.Add(holiday); } return(results); }
public IActionResult Countries() { var countryCodes = (CountryCode[])Enum.GetValues(typeof(CountryCode)); var availableCountryCodes = from CountryCode countryCode in countryCodes where DateSystem.GetPublicHolidays(DateTime.Today.Year, countryCode).Any() select countryCode; var countries = availableCountryCodes.Select(countryCode => new KeyValuePair <string, string>(countryCode.ToString(), this.GetName(countryCode))); ViewBag.Count = countries.Count(); ViewBag.Countries = countries; return(View()); }
public void TestChina2017() { var publicHolidays = DateSystem.GetPublicHolidays(2017, CountryCode.CN).ToArray(); var test1 = publicHolidays.Any(o => o.Date == new DateTime(2017, 10, 4) && o.Name == "Mid-Autumn Festival"); var test2 = publicHolidays.Any(o => o.Date == new DateTime(2017, 4, 4) && o.Name == "Qingming Festival (Tomb-Sweeping Day)"); //Set to warning till china provider is fixed //Assert.IsTrue(test1); //Assert.IsTrue(test2); if (!test1 || !test2) { Assert.Inconclusive("China provider have problems"); } }
public void CheckNoCorruptPublicHolidays() { var startYear = DateTime.Today.Year - 100; var endYear = DateTime.Today.Year + 100; foreach (CountryCode countryCode in Enum.GetValues(typeof(CountryCode))) { for (var calculationYear = startYear; calculationYear < endYear; calculationYear++) { var items = DateSystem.GetPublicHolidays(calculationYear, countryCode); var corruptPublicHolidaysAvailable = items.Any(o => !o.Date.Year.Equals(calculationYear)); Assert.IsFalse(corruptPublicHolidaysAvailable, $"Check country {countryCode} {calculationYear}"); //Trace.WriteLineIf(corruptPublicHolidaysAvailable, $"Check country {countryCode} {calculationYear}"); } } }
public void TestGermanyLiberationDay2020() { var publicHolidays = DateSystem.GetPublicHolidays( new DateTime(2019, 5, 8), new DateTime(2021, 5, 8), CountryCode.DE); var liberationDays = publicHolidays.Where(x => x.LocalName == "Tag der Befreiung").ToList(); var liberationDay = liberationDays.FirstOrDefault(); Assert.AreEqual(1, liberationDays.Count); Assert.IsNotNull(liberationDay); Assert.AreEqual(new DateTime(2020, 5, 8), liberationDay.Date); Assert.IsNotNull(liberationDay.Counties); Assert.AreEqual(1, liberationDay.Counties.Length); Assert.AreEqual("DE-BE", liberationDay.Counties[0]); }
public ActionResult <IEnumerable <PublicHolidayDto> > PublicHolidays( [FromRoute][Required] int year, [FromRoute][Required] string countryCode) { if (!Enum.TryParse(countryCode, true, out CountryCode parsedCountryCode)) { return(StatusCode(StatusCodes.Status404NotFound)); } var items = DateSystem.GetPublicHolidays(year, parsedCountryCode); if (items?.Count() > 0) { return(StatusCode(StatusCodes.Status200OK, items.Adapt <PublicHolidayDto[]>())); } return(StatusCode(StatusCodes.Status404NotFound)); }
public ActionResult <IEnumerable <PublicHolidayDto> > CountryJson( [FromRoute][Required] string countryCode, [FromRoute][Required] int year) { if (!Enum.TryParse(countryCode, true, out CountryCode parsedCountryCode)) { return(StatusCode(StatusCodes.Status404NotFound)); } var publicHolidays = DateSystem.GetPublicHolidays(year, parsedCountryCode); if (publicHolidays?.Count() > 0) { var items = publicHolidays.Where(o => o.Type.HasFlag(PublicHolidayType.Public)); return(StatusCode(StatusCodes.Status200OK, items.Adapt <PublicHolidayDto[]>())); } return(StatusCode(StatusCodes.Status404NotFound)); }
public ActionResult DownloadCsv(string countrycode, int year = 0) { if (year == 0) { year = DateTime.Now.Year; } if (!Enum.TryParse(countrycode, true, out CountryCode countryCode)) { return(NotFound()); } var items = DateSystem.GetPublicHolidays(year, countryCode).ToList(); if (items.Count > 0) { using (var memoryStream = new MemoryStream()) using (var streamWriter = new StreamWriter(memoryStream)) using (var csv = new CsvWriter(streamWriter, CultureInfo.InvariantCulture)) { var csvItems = items.Select(o => new PublicHolidayCsv(o)).ToArray(); csv.WriteRecords(csvItems); streamWriter.Flush(); var csvData = memoryStream.ToArray(); var result = new FileContentResult(csvData, "application/octet-stream") { FileDownloadName = $"publicholiday.{countrycode}.{year}.csv" }; return(result); } } return(NotFound()); }