2017-10-13

anond:20171013044943

ruby

# 曜日定数定義
module YOUBI
    Sun = 0, Mon = 1, Tue = 2, Wed = 3, Thu = 4, Fri = 5, Sat = 6
end

# 指定年月日の曜日取得
# https://en.wikipedia.org/wiki/Determination_of_the_day_of_the_week#Implementation-dependent_methods
def get_youbi(year, month, day)
    day += if month < 3 then year-=1;year+1 else year-2 end # <
    (23 * month / 9 + day + 4 + year / 4 - year / 100 + year / 400) % 7
end

# 13日の金曜日判定
def super_friday(year, month)
    get_youbi(year, month, 13) == YOUBI::Fri
end

# メイン関数
def main
    for year in 2000..2100
        msg = "#{year}年:"
        for month in 1..12
            if super_friday(year, month)
                msg += "#{month}月13日 "
            end
        end

        #print msg + "\n" # back-slash
        puts msg
    end
end

# 実行
main

出力

2000年10月13日 
2001年4月13日 7月13日 
2002年9月13日 12月13日 
2003年6月13日 
2004年2月13日 8月13日 
2005年5月13日 
2006年1月13日 10月13日 
2007年4月13日 7月13日 
2008年6月13日 
2009年2月13日 3月13日 11月13日 
2010年8月13日 
2011年5月13日 
2012年1月13日 4月13日 7月13日 
2013年9月13日 12月13日 
2014年6月13日 
2015年2月13日 3月13日 11月13日 
2016年5月13日 
2017年1月13日 10月13日 
2018年4月13日 7月13日 
2019年9月13日 12月13日 
2020年3月13日 11月13日 
2021年8月13日 
2022年5月13日 
2023年1月13日 10月13日 
2024年9月13日 12月13日 
2025年6月13日 
2026年2月13日 3月13日 11月13日 
2027年8月13日 
2028年10月13日 
2029年4月13日 7月13日 
2030年9月13日 12月13日 
2031年6月13日 
2032年2月13日 8月13日 
2033年5月13日 
2034年1月13日 10月13日 
2035年4月13日 7月13日 
2036年6月13日 
2037年2月13日 3月13日 11月13日 
2038年8月13日 
2039年5月13日 
2040年1月13日 4月13日 7月13日 
2041年9月13日 12月13日 
2042年6月13日 
2043年2月13日 3月13日 11月13日 
2044年5月13日 
2045年1月13日 10月13日 
2046年4月13日 7月13日 
2047年9月13日 12月13日 
2048年3月13日 11月13日 
2049年8月13日 
2050年5月13日 
2051年:1月13日 10月13日 
2052年:9月13日 12月13日 
2053年:6月13日 
2054年:2月13日 3月13日 11月13日 
2055年:8月13日 
2056年:10月13日 
2057年:4月13日 7月13日 
2058年9月13日 12月13日 
2059年:6月13日 
2060年:2月13日 8月13日 
2061年:5月13日 
2062年:1月13日 10月13日 
2063年:4月13日 7月13日 
2064年:6月13日 
2065年:2月13日 3月13日 11月13日 
2066年:8月13日 
2067年:5月13日 
2068年:1月13日 4月13日 7月13日 
2069年:9月13日 12月13日 
2070年:6月13日 
2071年:2月13日 3月13日 11月13日 
2072年:5月13日 
2073年:1月13日 10月13日 
2074年:4月13日 7月13日 
2075年:9月13日 12月13日 
2076年:3月13日 11月13日 
2077年8月13日 
2078年:5月13日 
2079年:1月13日 10月13日 
2080年:9月13日 12月13日 
2081年:6月13日 
2082年:2月13日 3月13日 11月13日 
2083年:8月13日 
2084年:10月13日 
2085年:4月13日 7月13日 
2086年:9月13日 12月13日 
2087年:6月13日 
2088年:2月13日 8月13日 
2089年:5月13日 
2090年:1月13日 10月13日 
2091年:4月13日 7月13日 
2092年:6月13日 
2093年:2月13日 3月13日 11月13日 
2094年:8月13日 
2095年:5月13日 
2096年:1月13日 4月13日 7月13日 
2097年:9月13日 12月13日 
2098年:6月13日 
2099年:2月13日 3月13日 11月13日 
2100年:8月13日 

28年周期なの?

wikiのSakamotoメソッドソースwiki記法不具合じゃないの?

と思いましたが、、。

 ↓

https://groups.google.com/forum/#!msg/comp.lang.c/GPA5wwrVnVw/hi2wB0TXGkAJ

 ↓

"-bed=pen+mad."[m] 文字列の添字なんだな・・。

記事への反応 -
  • https://anond.hatelabo.jp/20171013044943

    13日の金曜日リスト 2000年:10月13日 2001年:4月13日 7月13日 2002年:9月13日 12月13日 2003年:6月13日 2004年:2月13日 8月13日 2005年:5月13日 2006年:1月13日 10月13日 2007年:4月13日 7月13日 2...

    • anond:20171013044943

      ruby # 曜日定数定義module YOUBI Sun = 0, Mon = 1, Tue = 2, Wed = 3, Thu = 4, Fri = 5, Sat = 6end# 指定年月日の曜日取得# https://en.wikipedia.org/wiki/Determination_of_the_day_of_the_week#Implementation-dependent_methodsdef get_you...

      • anond:20171013100220

        puts警察だ! Rubyにおいて単純な文字列を特段厳密な制御なしに改行つきで標準出力に出したい場合はprintではなくputsを使え! print msg + "\n" # back-slash puts msg ちなみに文字列がnil...

      • https://anond.hatelabo.jp/20171013100220

        いまさらだけど閏年と曜日の周期なんだから28年に決まっとろう。 あと、そこまで書いたんだから2100年にまさに28年周期が崩れてることに気づけよ。

    • anond:20171013044943

      今日じゃん!

    • anond:20171013044943

      金ローでやってたのを覚えてる人が少なくなったから話題にする人もいなくなったな

      • anond:20171013134059

        いや映画関係なく知ってるだろ普通は

        • anond:20171013134308

          今の20代前半以下の若いのはジェイソンとか「誰それ?」状態だよ ホラーとのかかわりも知らない

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん