Skip to content

Instantly share code, notes, and snippets.

@Visgean
Created February 3, 2014 21:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Visgean/8793232 to your computer and use it in GitHub Desktop.
Save Visgean/8793232 to your computer and use it in GitHub Desktop.
import datetime
from collections import Counter
In [61]: days = [datetime.date(day=1, month=1, year = year).isoweekday() for year in range(1582,2014)]
In [62]: print days
[5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2]
#[5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2, 3, 4, 5, 7, 1, 2, 3, 5, 6, 7, 1, 3, 4, 5, 6, 1, 2, 3, 4, 6, 7, 1, 2, 4, 5, 6, 7, 2]
In [25]: Counter(days)
Out[25]: Counter({2: 63, 5: 63, 7: 63, 3: 61, 4: 61, 6: 61, 1: 60})
In [41]: years_by_weekday = lambda weekday: [datetime.date(day=1, month=1, year = year).year for year in range(1582,2014) if datetime.date(day=1, month=1, year = year).isoweekday() == weekday]
In [49]: week_days_years = [(week_day, years_by_weekday(week_day)) for week_day in range(1,8)]
In [52]: print week_days_years
[(1, [1590, 1596, 1601, 1607, 1618, 1624, 1629, 1635, 1646, 1652, 1657, 1663, 1674, 1680, 1685, 1691, 1703, 1714, 1720, 1725, 1731, 1742, 1748, 1753, 1759, 1770, 1776, 1781, 1787, 1798, 1810, 1816, 1821, 1827, 1838, 1844, 1849, 1855, 1866, 1872, 1877, 1883, 1894, 1900, 1906, 1912, 1917, 1923, 1934, 1940, 1945, 1951, 1962, 1968, 1973, 1979, 1990, 1996, 2001, 2007]), (2, [1585, 1591, 1602, 1608, 1613, 1619, 1630, 1636, 1641, 1647, 1658, 1664, 1669, 1675, 1686, 1692, 1697, 1704, 1709, 1715, 1726, 1732, 1737, 1743, 1754, 1760, 1765, 1771, 1782, 1788, 1793, 1799, 1805, 1811, 1822, 1828, 1833, 1839, 1850, 1856, 1861, 1867, 1878, 1884, 1889, 1895, 1901, 1907, 1918, 1924, 1929, 1935, 1946, 1952, 1957, 1963, 1974, 1980, 1985, 1991, 2002, 2008, 2013]), (3, [1586, 1592, 1597, 1603, 1614, 1620, 1625, 1631, 1642, 1648, 1653, 1659, 1670, 1676, 1681, 1687, 1698, 1710, 1716, 1721, 1727, 1738, 1744, 1749, 1755, 1766, 1772, 1777, 1783, 1794, 1800, 1806, 1812, 1817, 1823, 1834, 1840, 1845, 1851, 1862, 1868, 1873, 1879, 1890, 1896, 1902, 1908, 1913, 1919, 1930, 1936, 1941, 1947, 1958, 1964, 1969, 1975, 1986, 1992, 1997, 2003]), (4, [1587, 1598, 1604, 1609, 1615, 1626, 1632, 1637, 1643, 1654, 1660, 1665, 1671, 1682, 1688, 1693, 1699, 1705, 1711, 1722, 1728, 1733, 1739, 1750, 1756, 1761, 1767, 1778, 1784, 1789, 1795, 1801, 1807, 1818, 1824, 1829, 1835, 1846, 1852, 1857, 1863, 1874, 1880, 1885, 1891, 1903, 1914, 1920, 1925, 1931, 1942, 1948, 1953, 1959, 1970, 1976, 1981, 1987, 1998, 2004, 2009]), (5, [1582, 1588, 1593, 1599, 1610, 1616, 1621, 1627, 1638, 1644, 1649, 1655, 1666, 1672, 1677, 1683, 1694, 1700, 1706, 1712, 1717, 1723, 1734, 1740, 1745, 1751, 1762, 1768, 1773, 1779, 1790, 1796, 1802, 1808, 1813, 1819, 1830, 1836, 1841, 1847, 1858, 1864, 1869, 1875, 1886, 1892, 1897, 1904, 1909, 1915, 1926, 1932, 1937, 1943, 1954, 1960, 1965, 1971, 1982, 1988, 1993, 1999, 2010]), (6, [1583, 1594, 1600, 1605, 1611, 1622, 1628, 1633, 1639, 1650, 1656, 1661, 1667, 1678, 1684, 1689, 1695, 1701, 1707, 1718, 1724, 1729, 1735, 1746, 1752, 1757, 1763, 1774, 1780, 1785, 1791, 1803, 1814, 1820, 1825, 1831, 1842, 1848, 1853, 1859, 1870, 1876, 1881, 1887, 1898, 1910, 1916, 1921, 1927, 1938, 1944, 1949, 1955, 1966, 1972, 1977, 1983, 1994, 2000, 2005, 2011]), (7, [1584, 1589, 1595, 1606, 1612, 1617, 1623, 1634, 1640, 1645, 1651, 1662, 1668, 1673, 1679, 1690, 1696, 1702, 1708, 1713, 1719, 1730, 1736, 1741, 1747, 1758, 1764, 1769, 1775, 1786, 1792, 1797, 1804, 1809, 1815, 1826, 1832, 1837, 1843, 1854, 1860, 1865, 1871, 1882, 1888, 1893, 1899, 1905, 1911, 1922, 1928, 1933, 1939, 1950, 1956, 1961, 1967, 1978, 1984, 1989, 1995, 2006, 2012])]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment