quarta-feira, 15 de dezembro de 2010

Dias da Semana no Ruby

0

Não sei por que ninguem nunca precisou isso no ruby, sei la, procurei na net e não encontrei nada resolvi implementar minha propria solução.

A documentação teorica está aqui: http://www.arlindo-correia.com/140101.html
Porém pra fazer a conversão, converti o codigo desse site http://www.profcardy.com/calculadoras/aplicativos.php?calc=4 do javascript para o ruby

o resultado foi esse monkey patch

class Time
  DAYS_OF_WEEK = [
    :saturday, :sunday, :monday, :tuesday, :wednesday, :thursday, :friday
  ]
  def day_of_week
    day = self.day
    month = self.month
    year = self.year
    if month == 1
      month = 13
      year -= 1
    end
    if month == 2
      month = 14
      year -= 1
    end
    phase1 = ((month + 1)*3)/5
    phase2 = (year/4)
    phase3 = (year/100)
    phase4 = (year/400)
    phase5 = day + (month*2)+phase1+year+phase2-phase3+phase4+2
    phase6 = phase5/7
    result = phase5-(phase6*7)
    DAYS_OF_WEEK[result]
  end
end

E os testes usando irb (na verdade usei o console do rails)
irb(main):001:0> t = Time.now
=> Wed Dec 15 22:05:00 -0200 2010
irb(main):002:0> t.day_of_week
=> :wednesday
irb(main):003:0> t.prev_month.day_of_week
=> :monday

Se alguem souber como recuperar o dia da semana sem o path me avisa ehhee.

0 comentários:

 
Design by ThemeShift | Bloggerized by Lasantha - Free Blogger Templates | Best Web Hosting