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

  1. class Time  
  2.   DAYS_OF_WEEK = [  
  3.     :saturday:sunday:monday:tuesday:wednesday:thursday:friday  
  4.   ]  
  5.   def day_of_week  
  6.     day = self.day  
  7.     month = self.month  
  8.     year = self.year  
  9.     if month == 1  
  10.       month = 13  
  11.       year -= 1  
  12.     end  
  13.     if month == 2  
  14.       month = 14  
  15.       year -= 1  
  16.     end  
  17.     phase1 = ((month + 1)*3)/5  
  18.     phase2 = (year/4)  
  19.     phase3 = (year/100)  
  20.     phase4 = (year/400)  
  21.     phase5 = day + (month*2)+phase1+year+phase2-phase3+phase4+2  
  22.     phase6 = phase5/7  
  23.     result = phase5-(phase6*7)  
  24.     DAYS_OF_WEEK[result]  
  25.   end  
  26. end  

E os testes usando irb (na verdade usei o console do rails)
  1. irb(main):001:0> t = Time.now  
  2. => Wed Dec 15 22:05:00 -0200 2010  
  3. irb(main):002:0> t.day_of_week  
  4. => :wednesday  
  5. irb(main):003:0> t.prev_month.day_of_week  
  6. => :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