「どう書く?org」へようこそ! このサイトは出されたお題をいかに解くか競い合う、 プログラマのためのコロシアムです。 投稿を試してみたい方はテスト、 とりあえず眺めてみたい方は言語の一覧 がおすすめです。

Information

以下の変更を加えました。ver.0.58(rev345)
  • コード付きのトピックを編集する際にコード欄が空になってしまうバグを修正しました。
  • ログイン時にスクロールバーが出てしまう問題を修正しました。
@

History

Recent challenge: LL Golf Hole 3 - 13日の金曜日を数え上げる

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

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/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
post comment Number of comments:42 Hidden Nested Flatten

Newest 10 challenges

Recent good comment

LL Golf Hole 3 - 13日の金曜日を数え上げる (Nested Flatten)

LINQのみ。 もうちょっと書きようがあるかなぁ?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
DateTime today = DateTime.Now.Date;
var q = from year in Enumerable.Range(today.Year, 2014 - today.Year)
        from month in Enumerable.Range(1, 12)
        let d = new DateTime(year, month, 13)
        where (d.DayOfWeek == DayOfWeek.Friday) && (d >= today)
        select d;
foreach (DateTime d in q)
{
    Console.WriteLine("{0:yyyy/MM/dd(ddd)}", d);
}
Console.WriteLine(q.Count());
}
おぉ!これがやりたかったんですよ。
勉強になりました。

Index

Feed

Next challenge

About 7 days later...

More challenge in queue, sooner the next challenge come. You can post new challenge. Click following link, fill forms, choose 'challenge' and submit it. Posted challenge enter in queue and be published later. Post topic

Other

Link

Pathtraq

loading...