節分の日取りをプログラムで自動計算しました

日記・コラム・つぶやき

この前、節分は、年によって変わる事を書きました。同僚と雑談している時に知ったのです。

節分の日取りが気になって、節分 – Wikipediaの情報を元に、プログラムで自動計算してみました。

1873年2月3日 1874年2月3日 1875年2月3日 1876年2月3日
1877年2月3日 1878年2月3日 1879年2月3日 1880年2月3日
1881年2月3日 1882年2月3日 1883年2月3日 1884年2月3日
1885年2月2日 1886年2月3日 1887年2月3日 1888年2月3日
1889年2月2日 1890年2月3日 1891年2月3日 1892年2月3日
1893年2月2日 1894年2月3日 1895年2月3日 1896年2月3日
1897年2月2日 1898年2月3日 1899年2月3日 1900年2月3日
1901年2月3日 1902年2月4日 1903年2月4日 1904年2月4日
1905年2月3日 1906年2月4日 1907年2月4日 1908年2月4日
1909年2月3日 1910年2月4日 1911年2月4日 1912年2月4日
1913年2月3日 1914年2月4日 1915年2月4日 1916年2月4日
1917年2月3日 1918年2月3日 1919年2月4日 1920年2月4日
1921年2月3日 1922年2月3日 1923年2月4日 1924年2月4日
1925年2月3日 1926年2月3日 1927年2月4日 1928年2月4日
1929年2月3日 1930年2月3日 1931年2月4日 1932年2月4日
1933年2月3日 1934年2月3日 1935年2月4日 1936年2月4日
1937年2月3日 1938年2月3日 1939年2月4日 1940年2月4日
1941年2月3日 1942年2月3日 1943年2月4日 1944年2月4日
1945年2月3日 1946年2月3日 1947年2月4日 1948年2月4日
1949年2月3日 1950年2月3日 1951年2月4日 1952年2月4日
1953年2月3日 1954年2月3日 1955年2月3日 1956年2月4日
1957年2月3日 1958年2月3日 1959年2月3日 1960年2月4日
1961年2月3日 1962年2月3日 1963年2月3日 1964年2月4日
1965年2月3日 1966年2月3日 1967年2月3日 1968年2月4日
1969年2月3日 1970年2月3日 1971年2月3日 1972年2月4日
1973年2月3日 1974年2月3日 1975年2月3日 1976年2月4日
1977年2月3日 1978年2月3日 1979年2月3日 1980年2月4日
1981年2月3日 1982年2月3日 1983年2月3日 1984年2月4日
1985年2月3日 1986年2月3日 1987年2月3日 1988年2月3日
1989年2月3日 1990年2月3日 1991年2月3日 1992年2月3日
1993年2月3日 1994年2月3日 1995年2月3日 1996年2月3日
1997年2月3日 1998年2月3日 1999年2月3日 2000年2月3日
2001年2月3日 2002年2月3日 2003年2月3日 2004年2月3日
2005年2月3日 2006年2月3日 2007年2月3日 2008年2月3日
2009年2月3日 2010年2月3日 2011年2月3日 2012年2月3日
2013年2月3日 2014年2月3日 2015年2月3日 2016年2月3日
2017年2月3日 2018年2月3日 2019年2月3日 2020年2月3日
2021年2月3日 2022年2月3日 2023年2月3日 2024年2月3日
2025年2月2日 2026年2月3日 2027年2月3日 2028年2月3日
2029年2月2日 2030年2月3日 2031年2月3日 2032年2月3日
2033年2月2日 2034年2月3日 2035年2月3日 2036年2月3日
2037年2月2日 2038年2月3日 2039年2月3日 2040年2月3日
2041年2月2日 2042年2月3日 2043年2月3日 2044年2月3日
2045年2月2日 2046年2月3日 2047年2月3日 2048年2月3日
2049年2月2日 2050年2月3日 2051年2月3日 2052年2月3日
2053年2月2日 2054年2月3日 2055年2月3日 2056年2月3日
2057年2月2日 2058年2月2日 2059年2月3日 2060年2月3日
2061年2月2日 2062年2月2日 2063年2月3日 2064年2月3日
2065年2月2日 2066年2月2日 2067年2月3日 2068年2月3日
2069年2月2日 2070年2月2日 2071年2月3日 2072年2月3日
2073年2月2日 2074年2月2日 2075年2月3日 2076年2月3日
2077年2月2日 2078年2月2日 2079年2月3日 2080年2月3日
2081年2月2日 2082年2月2日 2083年2月3日 2084年2月3日
2085年2月2日 2086年2月2日 2087年2月3日 2088年2月3日
2089年2月2日 2090年2月2日 2091年2月2日 2092年2月3日
2093年2月2日 2094年2月2日 2095年2月2日 2096年2月3日
2097年2月2日 2098年2月2日 2099年2月2日 2100年2月3日
2101年2月3日 2102年2月3日 2103年2月3日 2104年2月4日

1873年から2104年までの分があります。2012年以降は、元の表が軌道計算に基づいた値なので、予測となります。

参考用に、節分の日取りを計算させたプログラムを載せておきます。

#!/Usr/bin/perl
# Copyrignt (c) 2011 お市のかた
# Created by お市のかた on Feb. 5, 2011
@hiduke = (
    { start => 1873 , end => 1884 , 1 => 3 , 2 => 3 , 3 => 3 , 0 => 3 },
    { start => 1882 , end => 1900 , 1 => 2 , 2 => 3 , 3 => 3 , 0 => 3 },
    { start => 1901 , end => 1917 , 1 => 3 , 2 => 4 , 3 => 4 , 0 => 4 },
    { start => 1915 , end => 1954 , 1 => 3 , 2 => 3 , 3 => 4 , 0 => 4 },
    { start => 1952 , end => 1987 , 1 => 3 , 2 => 3 , 3 => 3 , 0 => 4 },
    { start => 1985 , end => 2024 , 1 => 3 , 2 => 3 , 3 => 3 , 0 => 3 },
    { start => 2022 , end => 2057 , 1 => 2 , 2 => 3 , 3 => 3 , 0 => 3 },
    { start => 2055 , end => 2090 , 1 => 2 , 2 => 2 , 3 => 3 , 0 => 3 },
    { start => 2088 , end => 2100 , 1 => 2 , 2 => 2 , 3 => 2 , 0 => 3 },
    { start => 2101 , end => 2104 , 1 => 3 , 2 => 3 , 3 => 3 , 0 => 4 },
    );
for($l =0; $l < @hiduke; $l++) {
    $start = $hiduke[$l]{start};
    $end   = $hiduke[$l]{end};
    for($year = $start; $year <= $end; $year++) {
if(!$year_check{$year}) {
    $year_mod = $year % 4;
    print "$year $hiduke[$l]{$year_mod}\n";
    $year_check{$year} = 1;
}
    }
}

Posted by お市のかた