どう書く?org : LL Golf Hole 3 - 13日の金曜日を数え上げる

original page : http://ja.doukaku.org/197/

今日から2013年12月31日までの、13日の金曜日とその総数を表示してください。

余力のあるものはこのプログラムを短くしてみたり、短くしてみたり、短くしてください。

※LL Future実行委員の高野光弘です。この出題は LL Future公式の出題であり、優れたものについてはLL Golfのセッションでご紹介させていただくかもしれません。ご理解の上、ご投稿ください。また、LL
Futureのチケットは現在も発売中です。よろしければ、メインイベントの方にもぜひご参加ください。

#!/usr/bin/env ruby
require 'date'

from = DateTime.now
to = DateTime.parse("2013-12-31")

friday = (from..to).inject(0) do |friday, date|
    if date.mday == 13 and date.wday == 5 then
        puts date.strftime('%Y-%m-%d')
        friday + 1
    else
        friday
    end
end

puts friday

#7010

original page : http://ja.doukaku.org/comment/7010/

2013年と都合よく解釈しました。

私にはこのくらいが限度のようです。

with(as.POSIXlt(l<-(seq(Sys.Date(),as.Date("2013-12-31"),"d"))), length(print(l[mday==13 & wday==5])))

#7044

original page : http://ja.doukaku.org/comment/7044/

短くしてみました。

l=Sys.Date():16070;class(l)="Date";length(print(l[format(l,"%d%w")==135]))