• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

せっかくアカウントをとったので、テストがてらプログラムを載せてみる。

お題は、どう書く.orgにあった、一番最近の問題で。

問題の内容は、 どう書く.org - LL Golf Hole 3 - 13日の金曜日を数え上げるを参照のこと。

   1  require 'date'
   2  
   3  from = DateTime.now
   4  to = DateTime.parse("2013-12-31")
   5  
   6  puts (from..to).find_all{|d| d.wday==5 and d.mday==13}.size

こんな感じになりました。

コードがちゃんとハイライトされてる! s21g blogすごくイイ!!

こんな便利なブログサービスを提供してくれている瀧内さんに感謝、感謝です。

posted by Png y_tsuda on Thu 7 Aug 2008 at 00:58 with 3 comments

Comments:

Png 瀧内元気 almost 16 years ago.

どうもですー。

   1  from.upto(to)

はruby-1.8.7でもEnumratorを返してくれないことに気がついた。

Png Yu Tsuda almost 16 years ago.

どうもですー。

ruby-1.8.6なら、date.rb(僕の環境では/usr/lib/ruby/1.8/date.rb)を直接編集したら、Enumratorを返すようになりますね。

/usr/lib/ruby/1.8/date.rb 1300行目くらい

   1  #  require 'enumerator'
   2  
   3    # Step the current date forward +step+ days at a
   4    # time (or backward, if +step+ is negative) until
   5    # we reach +limit+ (inclusive), yielding the resultant
   6    # date at each step.
   7    def step(limit, step=1) # :yield: date
   8  =begin
   9      unless block_given?
  10        return to_enum(:step, limit, step)
  11      end
  12  =end
  13      da = self
  14      op = %w(- <= >=)[step <=> 0]
  15      while da.__send__(op, limit)
  16        yield da
  17        da += step
  18      end
  19      self
  20    end

   1    require 'enumerator'
   2  
   3    # Step the current date forward +step+ days at a
   4    # time (or backward, if +step+ is negative) until
   5    # we reach +limit+ (inclusive), yielding the resultant
   6    # date at each step.
   7    def step(limit, step=1) # :yield: date
   8  #=begin
   9      unless block_given?
  10        return to_enum(:step, limit, step)
  11      end
  12  #=end
  13      da = self
  14      op = %w(- <= >=)[step <=> 0]
  15      while da.__send__(op, limit)
  16        yield da
  17        da += step
  18      end
  19      self
  20    end
です。

こんな感じでEnumratorを返してくれます。

   1  from.upto(to)
   2   #=> #<Enumerable::Enumerator:0x7f816d87ae88>

コメントアウトしてるだけってことは、いつかはこのコメントが外れるときがくるんですかね?

Png 瀧内元気 almost 16 years ago.

おお確かに。

ソース見たらいろいろ=begin =endでコメントアウトされてることろがありますねー。 面白い。

or Preview
Social Bookmarks
  • Delicious
  • B_entry737
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ