Add Catholic Feasts holiday authority class (US observances)
This includes a static function to calculate Easter that can be used for other authorities. Document the wxDateTimeWorkDays and wxDateTimeHolidayAuthority classes. Closes #24094.
This commit is contained in:
parent
2c9fee3d6f
commit
5ba009e861
4 changed files with 912 additions and 13 deletions
|
|
@ -2025,4 +2025,568 @@ TEST_CASE("wxDateTime::UNow", "[datetime][now][unow]")
|
|||
CHECK( gotMS );
|
||||
}
|
||||
|
||||
TEST_CASE("Easter", "[datetime][holiday][easter]")
|
||||
{
|
||||
std::vector<wxDateTime> easters =
|
||||
{
|
||||
wxDateTime( 2, wxDateTime::Apr, 1600),
|
||||
wxDateTime(22, wxDateTime::Apr, 1601),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1602),
|
||||
wxDateTime(30, wxDateTime::Mar, 1603),
|
||||
wxDateTime(18, wxDateTime::Apr, 1604),
|
||||
wxDateTime(10, wxDateTime::Apr, 1605),
|
||||
wxDateTime(26, wxDateTime::Mar, 1606),
|
||||
wxDateTime(15, wxDateTime::Apr, 1607),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1608),
|
||||
wxDateTime(19, wxDateTime::Apr, 1609),
|
||||
wxDateTime(11, wxDateTime::Apr, 1610),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1611),
|
||||
wxDateTime(22, wxDateTime::Apr, 1612),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1613),
|
||||
wxDateTime(30, wxDateTime::Mar, 1614),
|
||||
wxDateTime(19, wxDateTime::Apr, 1615),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1616),
|
||||
wxDateTime(26, wxDateTime::Mar, 1617),
|
||||
wxDateTime(15, wxDateTime::Apr, 1618),
|
||||
wxDateTime(31, wxDateTime::Mar, 1619),
|
||||
wxDateTime(19, wxDateTime::Apr, 1620),
|
||||
wxDateTime(11, wxDateTime::Apr, 1621),
|
||||
wxDateTime(27, wxDateTime::Mar, 1622),
|
||||
wxDateTime(16, wxDateTime::Apr, 1623),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1624),
|
||||
wxDateTime(30, wxDateTime::Mar, 1625),
|
||||
wxDateTime(12, wxDateTime::Apr, 1626),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1627),
|
||||
wxDateTime(23, wxDateTime::Apr, 1628),
|
||||
wxDateTime(15, wxDateTime::Apr, 1629),
|
||||
wxDateTime(31, wxDateTime::Mar, 1630),
|
||||
wxDateTime(20, wxDateTime::Apr, 1631),
|
||||
wxDateTime(11, wxDateTime::Apr, 1632),
|
||||
wxDateTime(27, wxDateTime::Mar, 1633),
|
||||
wxDateTime(16, wxDateTime::Apr, 1634),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1635),
|
||||
wxDateTime(23, wxDateTime::Mar, 1636),
|
||||
wxDateTime(12, wxDateTime::Apr, 1637),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1638),
|
||||
wxDateTime(24, wxDateTime::Apr, 1639),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1640),
|
||||
wxDateTime(31, wxDateTime::Mar, 1641),
|
||||
wxDateTime(20, wxDateTime::Apr, 1642),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1643),
|
||||
wxDateTime(27, wxDateTime::Mar, 1644),
|
||||
wxDateTime(16, wxDateTime::Apr, 1645),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1646),
|
||||
wxDateTime(21, wxDateTime::Apr, 1647),
|
||||
wxDateTime(12, wxDateTime::Apr, 1648),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1649),
|
||||
wxDateTime(17, wxDateTime::Apr, 1650),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1651),
|
||||
wxDateTime(31, wxDateTime::Mar, 1652),
|
||||
wxDateTime(13, wxDateTime::Apr, 1653),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1654),
|
||||
wxDateTime(28, wxDateTime::Mar, 1655),
|
||||
wxDateTime(16, wxDateTime::Apr, 1656),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1657),
|
||||
wxDateTime(21, wxDateTime::Apr, 1658),
|
||||
wxDateTime(13, wxDateTime::Apr, 1659),
|
||||
wxDateTime(28, wxDateTime::Mar, 1660),
|
||||
wxDateTime(17, wxDateTime::Apr, 1661),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1662),
|
||||
wxDateTime(25, wxDateTime::Mar, 1663),
|
||||
wxDateTime(13, wxDateTime::Apr, 1664),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1665),
|
||||
wxDateTime(25, wxDateTime::Apr, 1666),
|
||||
wxDateTime(10, wxDateTime::Apr, 1667),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1668),
|
||||
wxDateTime(21, wxDateTime::Apr, 1669),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1670),
|
||||
wxDateTime(29, wxDateTime::Mar, 1671),
|
||||
wxDateTime(17, wxDateTime::Apr, 1672),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1673),
|
||||
wxDateTime(25, wxDateTime::Mar, 1674),
|
||||
wxDateTime(14, wxDateTime::Apr, 1675),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1676),
|
||||
wxDateTime(18, wxDateTime::Apr, 1677),
|
||||
wxDateTime(10, wxDateTime::Apr, 1678),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1679),
|
||||
wxDateTime(21, wxDateTime::Apr, 1680),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1681),
|
||||
wxDateTime(29, wxDateTime::Mar, 1682),
|
||||
wxDateTime(18, wxDateTime::Apr, 1683),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1684),
|
||||
wxDateTime(22, wxDateTime::Apr, 1685),
|
||||
wxDateTime(14, wxDateTime::Apr, 1686),
|
||||
wxDateTime(30, wxDateTime::Mar, 1687),
|
||||
wxDateTime(18, wxDateTime::Apr, 1688),
|
||||
wxDateTime(10, wxDateTime::Apr, 1689),
|
||||
wxDateTime(26, wxDateTime::Mar, 1690),
|
||||
wxDateTime(15, wxDateTime::Apr, 1691),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1692),
|
||||
wxDateTime(22, wxDateTime::Mar, 1693),
|
||||
wxDateTime(11, wxDateTime::Apr, 1694),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1695),
|
||||
wxDateTime(22, wxDateTime::Apr, 1696),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1697),
|
||||
wxDateTime(30, wxDateTime::Mar, 1698),
|
||||
wxDateTime(19, wxDateTime::Apr, 1699),
|
||||
wxDateTime(11, wxDateTime::Apr, 1700),
|
||||
wxDateTime(27, wxDateTime::Mar, 1701),
|
||||
wxDateTime(16, wxDateTime::Apr, 1702),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1703),
|
||||
wxDateTime(23, wxDateTime::Mar, 1704),
|
||||
wxDateTime(12, wxDateTime::Apr, 1705),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1706),
|
||||
wxDateTime(24, wxDateTime::Apr, 1707),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1708),
|
||||
wxDateTime(31, wxDateTime::Mar, 1709),
|
||||
wxDateTime(20, wxDateTime::Apr, 1710),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1711),
|
||||
wxDateTime(27, wxDateTime::Mar, 1712),
|
||||
wxDateTime(16, wxDateTime::Apr, 1713),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1714),
|
||||
wxDateTime(21, wxDateTime::Apr, 1715),
|
||||
wxDateTime(12, wxDateTime::Apr, 1716),
|
||||
wxDateTime(28, wxDateTime::Mar, 1717),
|
||||
wxDateTime(17, wxDateTime::Apr, 1718),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1719),
|
||||
wxDateTime(31, wxDateTime::Mar, 1720),
|
||||
wxDateTime(13, wxDateTime::Apr, 1721),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1722),
|
||||
wxDateTime(28, wxDateTime::Mar, 1723),
|
||||
wxDateTime(16, wxDateTime::Apr, 1724),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1725),
|
||||
wxDateTime(21, wxDateTime::Apr, 1726),
|
||||
wxDateTime(13, wxDateTime::Apr, 1727),
|
||||
wxDateTime(28, wxDateTime::Mar, 1728),
|
||||
wxDateTime(17, wxDateTime::Apr, 1729),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1730),
|
||||
wxDateTime(25, wxDateTime::Mar, 1731),
|
||||
wxDateTime(13, wxDateTime::Apr, 1732),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1733),
|
||||
wxDateTime(25, wxDateTime::Apr, 1734),
|
||||
wxDateTime(10, wxDateTime::Apr, 1735),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1736),
|
||||
wxDateTime(21, wxDateTime::Apr, 1737),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1738),
|
||||
wxDateTime(29, wxDateTime::Mar, 1739),
|
||||
wxDateTime(17, wxDateTime::Apr, 1740),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1741),
|
||||
wxDateTime(25, wxDateTime::Mar, 1742),
|
||||
wxDateTime(14, wxDateTime::Apr, 1743),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1744),
|
||||
wxDateTime(18, wxDateTime::Apr, 1745),
|
||||
wxDateTime(10, wxDateTime::Apr, 1746),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1747),
|
||||
wxDateTime(14, wxDateTime::Apr, 1748),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1749),
|
||||
wxDateTime(29, wxDateTime::Mar, 1750),
|
||||
wxDateTime(11, wxDateTime::Apr, 1751),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1752),
|
||||
wxDateTime(22, wxDateTime::Apr, 1753),
|
||||
wxDateTime(14, wxDateTime::Apr, 1754),
|
||||
wxDateTime(30, wxDateTime::Mar, 1755),
|
||||
wxDateTime(18, wxDateTime::Apr, 1756),
|
||||
wxDateTime(10, wxDateTime::Apr, 1757),
|
||||
wxDateTime(26, wxDateTime::Mar, 1758),
|
||||
wxDateTime(15, wxDateTime::Apr, 1759),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1760),
|
||||
wxDateTime(22, wxDateTime::Mar, 1761),
|
||||
wxDateTime(11, wxDateTime::Apr, 1762),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1763),
|
||||
wxDateTime(22, wxDateTime::Apr, 1764),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1765),
|
||||
wxDateTime(30, wxDateTime::Mar, 1766),
|
||||
wxDateTime(19, wxDateTime::Apr, 1767),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1768),
|
||||
wxDateTime(26, wxDateTime::Mar, 1769),
|
||||
wxDateTime(15, wxDateTime::Apr, 1770),
|
||||
wxDateTime(31, wxDateTime::Mar, 1771),
|
||||
wxDateTime(19, wxDateTime::Apr, 1772),
|
||||
wxDateTime(11, wxDateTime::Apr, 1773),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1774),
|
||||
wxDateTime(16, wxDateTime::Apr, 1775),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1776),
|
||||
wxDateTime(30, wxDateTime::Mar, 1777),
|
||||
wxDateTime(19, wxDateTime::Apr, 1778),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1779),
|
||||
wxDateTime(26, wxDateTime::Mar, 1780),
|
||||
wxDateTime(15, wxDateTime::Apr, 1781),
|
||||
wxDateTime(31, wxDateTime::Mar, 1782),
|
||||
wxDateTime(20, wxDateTime::Apr, 1783),
|
||||
wxDateTime(11, wxDateTime::Apr, 1784),
|
||||
wxDateTime(27, wxDateTime::Mar, 1785),
|
||||
wxDateTime(16, wxDateTime::Apr, 1786),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1787),
|
||||
wxDateTime(23, wxDateTime::Mar, 1788),
|
||||
wxDateTime(12, wxDateTime::Apr, 1789),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1790),
|
||||
wxDateTime(24, wxDateTime::Apr, 1791),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1792),
|
||||
wxDateTime(31, wxDateTime::Mar, 1793),
|
||||
wxDateTime(20, wxDateTime::Apr, 1794),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1795),
|
||||
wxDateTime(27, wxDateTime::Mar, 1796),
|
||||
wxDateTime(16, wxDateTime::Apr, 1797),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1798),
|
||||
wxDateTime(24, wxDateTime::Mar, 1799),
|
||||
wxDateTime(13, wxDateTime::Apr, 1800),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1801),
|
||||
wxDateTime(18, wxDateTime::Apr, 1802),
|
||||
wxDateTime(10, wxDateTime::Apr, 1803),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1804),
|
||||
wxDateTime(14, wxDateTime::Apr, 1805),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1806),
|
||||
wxDateTime(29, wxDateTime::Mar, 1807),
|
||||
wxDateTime(17, wxDateTime::Apr, 1808),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1809),
|
||||
wxDateTime(22, wxDateTime::Apr, 1810),
|
||||
wxDateTime(14, wxDateTime::Apr, 1811),
|
||||
wxDateTime(29, wxDateTime::Mar, 1812),
|
||||
wxDateTime(18, wxDateTime::Apr, 1813),
|
||||
wxDateTime(10, wxDateTime::Apr, 1814),
|
||||
wxDateTime(26, wxDateTime::Mar, 1815),
|
||||
wxDateTime(14, wxDateTime::Apr, 1816),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1817),
|
||||
wxDateTime(22, wxDateTime::Mar, 1818),
|
||||
wxDateTime(11, wxDateTime::Apr, 1819),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1820),
|
||||
wxDateTime(22, wxDateTime::Apr, 1821),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1822),
|
||||
wxDateTime(30, wxDateTime::Mar, 1823),
|
||||
wxDateTime(18, wxDateTime::Apr, 1824),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1825),
|
||||
wxDateTime(26, wxDateTime::Mar, 1826),
|
||||
wxDateTime(15, wxDateTime::Apr, 1827),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1828),
|
||||
wxDateTime(19, wxDateTime::Apr, 1829),
|
||||
wxDateTime(11, wxDateTime::Apr, 1830),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1831),
|
||||
wxDateTime(22, wxDateTime::Apr, 1832),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1833),
|
||||
wxDateTime(30, wxDateTime::Mar, 1834),
|
||||
wxDateTime(19, wxDateTime::Apr, 1835),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1836),
|
||||
wxDateTime(26, wxDateTime::Mar, 1837),
|
||||
wxDateTime(15, wxDateTime::Apr, 1838),
|
||||
wxDateTime(31, wxDateTime::Mar, 1839),
|
||||
wxDateTime(19, wxDateTime::Apr, 1840),
|
||||
wxDateTime(11, wxDateTime::Apr, 1841),
|
||||
wxDateTime(27, wxDateTime::Mar, 1842),
|
||||
wxDateTime(16, wxDateTime::Apr, 1843),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1844),
|
||||
wxDateTime(23, wxDateTime::Mar, 1845),
|
||||
wxDateTime(12, wxDateTime::Apr, 1846),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1847),
|
||||
wxDateTime(23, wxDateTime::Apr, 1848),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1849),
|
||||
wxDateTime(31, wxDateTime::Mar, 1850),
|
||||
wxDateTime(20, wxDateTime::Apr, 1851),
|
||||
wxDateTime(11, wxDateTime::Apr, 1852),
|
||||
wxDateTime(27, wxDateTime::Mar, 1853),
|
||||
wxDateTime(16, wxDateTime::Apr, 1854),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1855),
|
||||
wxDateTime(23, wxDateTime::Mar, 1856),
|
||||
wxDateTime(12, wxDateTime::Apr, 1857),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1858),
|
||||
wxDateTime(24, wxDateTime::Apr, 1859),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1860),
|
||||
wxDateTime(31, wxDateTime::Mar, 1861),
|
||||
wxDateTime(20, wxDateTime::Apr, 1862),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1863),
|
||||
wxDateTime(27, wxDateTime::Mar, 1864),
|
||||
wxDateTime(16, wxDateTime::Apr, 1865),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1866),
|
||||
wxDateTime(21, wxDateTime::Apr, 1867),
|
||||
wxDateTime(12, wxDateTime::Apr, 1868),
|
||||
wxDateTime(28, wxDateTime::Mar, 1869),
|
||||
wxDateTime(17, wxDateTime::Apr, 1870),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1871),
|
||||
wxDateTime(31, wxDateTime::Mar, 1872),
|
||||
wxDateTime(13, wxDateTime::Apr, 1873),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1874),
|
||||
wxDateTime(28, wxDateTime::Mar, 1875),
|
||||
wxDateTime(16, wxDateTime::Apr, 1876),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1877),
|
||||
wxDateTime(21, wxDateTime::Apr, 1878),
|
||||
wxDateTime(13, wxDateTime::Apr, 1879),
|
||||
wxDateTime(28, wxDateTime::Mar, 1880),
|
||||
wxDateTime(17, wxDateTime::Apr, 1881),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1882),
|
||||
wxDateTime(25, wxDateTime::Mar, 1883),
|
||||
wxDateTime(13, wxDateTime::Apr, 1884),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1885),
|
||||
wxDateTime(25, wxDateTime::Apr, 1886),
|
||||
wxDateTime(10, wxDateTime::Apr, 1887),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1888),
|
||||
wxDateTime(21, wxDateTime::Apr, 1889),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1890),
|
||||
wxDateTime(29, wxDateTime::Mar, 1891),
|
||||
wxDateTime(17, wxDateTime::Apr, 1892),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1893),
|
||||
wxDateTime(25, wxDateTime::Mar, 1894),
|
||||
wxDateTime(14, wxDateTime::Apr, 1895),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1896),
|
||||
wxDateTime(18, wxDateTime::Apr, 1897),
|
||||
wxDateTime(10, wxDateTime::Apr, 1898),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1899),
|
||||
wxDateTime(15, wxDateTime::Apr, 1900),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1901),
|
||||
wxDateTime(30, wxDateTime::Mar, 1902),
|
||||
wxDateTime(12, wxDateTime::Apr, 1903),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1904),
|
||||
wxDateTime(23, wxDateTime::Apr, 1905),
|
||||
wxDateTime(15, wxDateTime::Apr, 1906),
|
||||
wxDateTime(31, wxDateTime::Mar, 1907),
|
||||
wxDateTime(19, wxDateTime::Apr, 1908),
|
||||
wxDateTime(11, wxDateTime::Apr, 1909),
|
||||
wxDateTime(27, wxDateTime::Mar, 1910),
|
||||
wxDateTime(16, wxDateTime::Apr, 1911),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1912),
|
||||
wxDateTime(23, wxDateTime::Mar, 1913),
|
||||
wxDateTime(12, wxDateTime::Apr, 1914),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1915),
|
||||
wxDateTime(23, wxDateTime::Apr, 1916),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1917),
|
||||
wxDateTime(31, wxDateTime::Mar, 1918),
|
||||
wxDateTime(20, wxDateTime::Apr, 1919),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1920),
|
||||
wxDateTime(27, wxDateTime::Mar, 1921),
|
||||
wxDateTime(16, wxDateTime::Apr, 1922),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1923),
|
||||
wxDateTime(20, wxDateTime::Apr, 1924),
|
||||
wxDateTime(12, wxDateTime::Apr, 1925),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1926),
|
||||
wxDateTime(17, wxDateTime::Apr, 1927),
|
||||
wxDateTime( 8, wxDateTime::Apr, 1928),
|
||||
wxDateTime(31, wxDateTime::Mar, 1929),
|
||||
wxDateTime(20, wxDateTime::Apr, 1930),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1931),
|
||||
wxDateTime(27, wxDateTime::Mar, 1932),
|
||||
wxDateTime(16, wxDateTime::Apr, 1933),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1934),
|
||||
wxDateTime(21, wxDateTime::Apr, 1935),
|
||||
wxDateTime(12, wxDateTime::Apr, 1936),
|
||||
wxDateTime(28, wxDateTime::Mar, 1937),
|
||||
wxDateTime(17, wxDateTime::Apr, 1938),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1939),
|
||||
wxDateTime(24, wxDateTime::Mar, 1940),
|
||||
wxDateTime(13, wxDateTime::Apr, 1941),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1942),
|
||||
wxDateTime(25, wxDateTime::Apr, 1943),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1944),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1945),
|
||||
wxDateTime(21, wxDateTime::Apr, 1946),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1947),
|
||||
wxDateTime(28, wxDateTime::Mar, 1948),
|
||||
wxDateTime(17, wxDateTime::Apr, 1949),
|
||||
wxDateTime( 9, wxDateTime::Apr, 1950),
|
||||
wxDateTime(25, wxDateTime::Mar, 1951),
|
||||
wxDateTime(13, wxDateTime::Apr, 1952),
|
||||
wxDateTime( 5, wxDateTime::Apr, 1953),
|
||||
wxDateTime(18, wxDateTime::Apr, 1954),
|
||||
wxDateTime(10, wxDateTime::Apr, 1955),
|
||||
wxDateTime( 1, wxDateTime::Apr, 1956),
|
||||
wxDateTime(21, wxDateTime::Apr, 1957),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1958),
|
||||
wxDateTime(29, wxDateTime::Mar, 1959),
|
||||
wxDateTime(17, wxDateTime::Apr, 1960),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1961),
|
||||
wxDateTime(22, wxDateTime::Apr, 1962),
|
||||
wxDateTime(14, wxDateTime::Apr, 1963),
|
||||
wxDateTime(29, wxDateTime::Mar, 1964),
|
||||
wxDateTime(18, wxDateTime::Apr, 1965),
|
||||
wxDateTime(10, wxDateTime::Apr, 1966),
|
||||
wxDateTime(26, wxDateTime::Mar, 1967),
|
||||
wxDateTime(14, wxDateTime::Apr, 1968),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1969),
|
||||
wxDateTime(29, wxDateTime::Mar, 1970),
|
||||
wxDateTime(11, wxDateTime::Apr, 1971),
|
||||
wxDateTime( 2, wxDateTime::Apr, 1972),
|
||||
wxDateTime(22, wxDateTime::Apr, 1973),
|
||||
wxDateTime(14, wxDateTime::Apr, 1974),
|
||||
wxDateTime(30, wxDateTime::Mar, 1975),
|
||||
wxDateTime(18, wxDateTime::Apr, 1976),
|
||||
wxDateTime(10, wxDateTime::Apr, 1977),
|
||||
wxDateTime(26, wxDateTime::Mar, 1978),
|
||||
wxDateTime(15, wxDateTime::Apr, 1979),
|
||||
wxDateTime( 6, wxDateTime::Apr, 1980),
|
||||
wxDateTime(19, wxDateTime::Apr, 1981),
|
||||
wxDateTime(11, wxDateTime::Apr, 1982),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1983),
|
||||
wxDateTime(22, wxDateTime::Apr, 1984),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1985),
|
||||
wxDateTime(30, wxDateTime::Mar, 1986),
|
||||
wxDateTime(19, wxDateTime::Apr, 1987),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1988),
|
||||
wxDateTime(26, wxDateTime::Mar, 1989),
|
||||
wxDateTime(15, wxDateTime::Apr, 1990),
|
||||
wxDateTime(31, wxDateTime::Mar, 1991),
|
||||
wxDateTime(19, wxDateTime::Apr, 1992),
|
||||
wxDateTime(11, wxDateTime::Apr, 1993),
|
||||
wxDateTime( 3, wxDateTime::Apr, 1994),
|
||||
wxDateTime(16, wxDateTime::Apr, 1995),
|
||||
wxDateTime( 7, wxDateTime::Apr, 1996),
|
||||
wxDateTime(30, wxDateTime::Mar, 1997),
|
||||
wxDateTime(12, wxDateTime::Apr, 1998),
|
||||
wxDateTime( 4, wxDateTime::Apr, 1999),
|
||||
wxDateTime(23, wxDateTime::Apr, 2000),
|
||||
wxDateTime(15, wxDateTime::Apr, 2001),
|
||||
wxDateTime(31, wxDateTime::Mar, 2002),
|
||||
wxDateTime(20, wxDateTime::Apr, 2003),
|
||||
wxDateTime(11, wxDateTime::Apr, 2004),
|
||||
wxDateTime(27, wxDateTime::Mar, 2005),
|
||||
wxDateTime(16, wxDateTime::Apr, 2006),
|
||||
wxDateTime( 8, wxDateTime::Apr, 2007),
|
||||
wxDateTime(23, wxDateTime::Mar, 2008),
|
||||
wxDateTime(12, wxDateTime::Apr, 2009),
|
||||
wxDateTime( 4, wxDateTime::Apr, 2010),
|
||||
wxDateTime(24, wxDateTime::Apr, 2011),
|
||||
wxDateTime( 8, wxDateTime::Apr, 2012),
|
||||
wxDateTime(31, wxDateTime::Mar, 2013),
|
||||
wxDateTime(20, wxDateTime::Apr, 2014),
|
||||
wxDateTime( 5, wxDateTime::Apr, 2015),
|
||||
wxDateTime(27, wxDateTime::Mar, 2016),
|
||||
wxDateTime(16, wxDateTime::Apr, 2017),
|
||||
wxDateTime( 1, wxDateTime::Apr, 2018),
|
||||
wxDateTime(21, wxDateTime::Apr, 2019),
|
||||
wxDateTime(12, wxDateTime::Apr, 2020),
|
||||
wxDateTime( 4, wxDateTime::Apr, 2021),
|
||||
wxDateTime(17, wxDateTime::Apr, 2022),
|
||||
wxDateTime( 9, wxDateTime::Apr, 2023),
|
||||
wxDateTime(31, wxDateTime::Mar, 2024),
|
||||
wxDateTime(20, wxDateTime::Apr, 2025),
|
||||
wxDateTime( 5, wxDateTime::Apr, 2026),
|
||||
wxDateTime(28, wxDateTime::Mar, 2027),
|
||||
wxDateTime(16, wxDateTime::Apr, 2028),
|
||||
wxDateTime( 1, wxDateTime::Apr, 2029),
|
||||
wxDateTime(21, wxDateTime::Apr, 2030),
|
||||
wxDateTime(13, wxDateTime::Apr, 2031),
|
||||
wxDateTime(28, wxDateTime::Mar, 2032),
|
||||
wxDateTime(17, wxDateTime::Apr, 2033),
|
||||
wxDateTime( 9, wxDateTime::Apr, 2034),
|
||||
wxDateTime(25, wxDateTime::Mar, 2035),
|
||||
wxDateTime(13, wxDateTime::Apr, 2036),
|
||||
wxDateTime( 5, wxDateTime::Apr, 2037),
|
||||
wxDateTime(25, wxDateTime::Apr, 2038),
|
||||
wxDateTime(10, wxDateTime::Apr, 2039),
|
||||
wxDateTime( 1, wxDateTime::Apr, 2040),
|
||||
wxDateTime(21, wxDateTime::Apr, 2041),
|
||||
wxDateTime( 6, wxDateTime::Apr, 2042),
|
||||
wxDateTime(29, wxDateTime::Mar, 2043),
|
||||
wxDateTime(17, wxDateTime::Apr, 2044),
|
||||
wxDateTime( 9, wxDateTime::Apr, 2045),
|
||||
wxDateTime(25, wxDateTime::Mar, 2046),
|
||||
wxDateTime(14, wxDateTime::Apr, 2047),
|
||||
wxDateTime( 5, wxDateTime::Apr, 2048),
|
||||
wxDateTime(18, wxDateTime::Apr, 2049),
|
||||
wxDateTime(10, wxDateTime::Apr, 2050),
|
||||
wxDateTime( 2, wxDateTime::Apr, 2051),
|
||||
wxDateTime(21, wxDateTime::Apr, 2052),
|
||||
wxDateTime( 6, wxDateTime::Apr, 2053),
|
||||
wxDateTime(29, wxDateTime::Mar, 2054),
|
||||
wxDateTime(18, wxDateTime::Apr, 2055),
|
||||
wxDateTime( 2, wxDateTime::Apr, 2056),
|
||||
wxDateTime(22, wxDateTime::Apr, 2057),
|
||||
wxDateTime(14, wxDateTime::Apr, 2058),
|
||||
wxDateTime(30, wxDateTime::Mar, 2059),
|
||||
wxDateTime(18, wxDateTime::Apr, 2060),
|
||||
wxDateTime(10, wxDateTime::Apr, 2061),
|
||||
wxDateTime(26, wxDateTime::Mar, 2062),
|
||||
wxDateTime(15, wxDateTime::Apr, 2063),
|
||||
wxDateTime( 6, wxDateTime::Apr, 2064),
|
||||
wxDateTime(29, wxDateTime::Mar, 2065),
|
||||
wxDateTime(11, wxDateTime::Apr, 2066),
|
||||
wxDateTime( 3, wxDateTime::Apr, 2067),
|
||||
wxDateTime(22, wxDateTime::Apr, 2068),
|
||||
wxDateTime(14, wxDateTime::Apr, 2069),
|
||||
wxDateTime(30, wxDateTime::Mar, 2070),
|
||||
wxDateTime(19, wxDateTime::Apr, 2071),
|
||||
wxDateTime(10, wxDateTime::Apr, 2072),
|
||||
wxDateTime(26, wxDateTime::Mar, 2073),
|
||||
wxDateTime(15, wxDateTime::Apr, 2074),
|
||||
wxDateTime( 7, wxDateTime::Apr, 2075),
|
||||
wxDateTime(19, wxDateTime::Apr, 2076),
|
||||
wxDateTime(11, wxDateTime::Apr, 2077),
|
||||
wxDateTime( 3, wxDateTime::Apr, 2078),
|
||||
wxDateTime(23, wxDateTime::Apr, 2079),
|
||||
wxDateTime( 7, wxDateTime::Apr, 2080),
|
||||
wxDateTime(30, wxDateTime::Mar, 2081),
|
||||
wxDateTime(19, wxDateTime::Apr, 2082),
|
||||
wxDateTime( 4, wxDateTime::Apr, 2083),
|
||||
wxDateTime(26, wxDateTime::Mar, 2084),
|
||||
wxDateTime(15, wxDateTime::Apr, 2085),
|
||||
wxDateTime(31, wxDateTime::Mar, 2086),
|
||||
wxDateTime(20, wxDateTime::Apr, 2087),
|
||||
wxDateTime(11, wxDateTime::Apr, 2088),
|
||||
wxDateTime( 3, wxDateTime::Apr, 2089),
|
||||
wxDateTime(16, wxDateTime::Apr, 2090),
|
||||
wxDateTime( 8, wxDateTime::Apr, 2091),
|
||||
wxDateTime(30, wxDateTime::Mar, 2092),
|
||||
wxDateTime(12, wxDateTime::Apr, 2093),
|
||||
wxDateTime( 4, wxDateTime::Apr, 2094),
|
||||
wxDateTime(24, wxDateTime::Apr, 2095),
|
||||
wxDateTime(15, wxDateTime::Apr, 2096),
|
||||
wxDateTime(31, wxDateTime::Mar, 2097),
|
||||
wxDateTime(20, wxDateTime::Apr, 2098),
|
||||
wxDateTime(12, wxDateTime::Apr, 2099)
|
||||
};
|
||||
|
||||
for (const auto& easter : easters)
|
||||
{
|
||||
INFO("Checking year " << easter.GetYear());
|
||||
CHECK(wxDateTimeUSCatholicFeasts::GetEaster(easter.GetYear()).IsSameDate(easter));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("US Catholic Holidays", "[datetime][holiday]")
|
||||
{
|
||||
SECTION("Ascension")
|
||||
{
|
||||
wxDateTime ascension = wxDateTimeUSCatholicFeasts::GetThursdayAscension(2023);
|
||||
CHECK(ascension.GetMonth() == wxDateTime::Month::May);
|
||||
CHECK(ascension.GetDay() == 18);
|
||||
|
||||
ascension = wxDateTimeUSCatholicFeasts::GetSundayAscension(2023);
|
||||
CHECK(ascension.GetMonth() == wxDateTime::Month::May);
|
||||
CHECK(ascension.GetDay() == 21);
|
||||
}
|
||||
SECTION("Fixed date feasts")
|
||||
{
|
||||
wxDateTimeHolidayAuthority::AddAuthority(new wxDateTimeUSCatholicFeasts);
|
||||
CHECK(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime( 1, wxDateTime::Month::Jan, 2024)));
|
||||
CHECK(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(15, wxDateTime::Month::Aug, 2023)));
|
||||
CHECK(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime( 1, wxDateTime::Month::Nov, 2023)));
|
||||
CHECK(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime( 8, wxDateTime::Month::Dec, 2023)));
|
||||
CHECK(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(25, wxDateTime::Month::Dec, 2023)));
|
||||
// random days that should not be feasts of obligation
|
||||
CHECK_FALSE(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime( 1, wxDateTime::Month::Dec, 2023)));
|
||||
CHECK_FALSE(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(31, wxDateTime::Month::Oct, 2023)));
|
||||
CHECK_FALSE(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(14, wxDateTime::Month::Feb, 2023)));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("Christian Holidays", "[datetime][holiday][christian]")
|
||||
{
|
||||
SECTION("Easter")
|
||||
{
|
||||
wxDateTime easter = wxDateTimeChristianHolidays::GetEaster(2023);
|
||||
CHECK(easter.GetMonth() == wxDateTime::Month::Apr);
|
||||
CHECK(easter.GetDay() == 9);
|
||||
|
||||
easter = wxDateTimeChristianHolidays::GetEaster(2010);
|
||||
CHECK(easter.GetMonth() == wxDateTime::Month::Apr);
|
||||
CHECK(easter.GetDay() == 4);
|
||||
}
|
||||
SECTION("Christmas")
|
||||
{
|
||||
wxDateTimeHolidayAuthority::AddAuthority(new wxDateTimeChristianHolidays);
|
||||
CHECK(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(25, wxDateTime::Month::Dec, 1990)));
|
||||
CHECK(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(25, wxDateTime::Month::Dec, 1700)));
|
||||
CHECK(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(25, wxDateTime::Month::Dec, 2023)));
|
||||
// random days that are not Christmas or weekends
|
||||
CHECK_FALSE(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(1, wxDateTime::Month::Dec, 2023)));
|
||||
CHECK_FALSE(wxDateTimeHolidayAuthority::IsHoliday(wxDateTime(29, wxDateTime::Month::Dec, 2023)));
|
||||
}
|
||||
}
|
||||
|
||||
#endif // wxUSE_DATETIME
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue