tutorial sirve sintaxis que para manejo formatear fechas fecha descargar como ruby date

sirve - ruby tutorial pdf



Código Ruby para obtener la fecha del próximo lunes(o cualquier día de la semana) (5)

Dada una entrada de, por ejemplo,

day = ''Monday''

¿Cómo puedo calcular la fecha del day ?

def date_of_next(day) ... end


Para alguien como yo que vino aquí buscando una solución en Rails para este problema, a partir de Rails 5.2 hay un método mucho más fácil para hacer esto.

Para cualquier persona (como el póster original) que no utilice Rails específicamente, esta funcionalidad está disponible en la gema ActiveSupport .

Para encontrar el próximo día de la semana, podemos escribir algo como Date.today.next_occurring(:friday) .

Consulte la documentación para más detalles.


Para cosas como esta confío en la biblioteca chronic .

El código de Ruby sería:

def date_of_next(day) Chronic.parse("next #{day}") end


Sé que esta es una publicación anterior, pero se me ocurrió un par de métodos para obtener rápidamente el día anterior y el siguiente de la semana.

# date is a Date object and day_of_week is 0 to 6 for Sunday to Saturday require ''Date'' def get_next_day(date, day_of_week) date + ((day_of_week - date.wday) % 7) end def get_previous_day(date, day_of_week) date - ((date.wday - day_of_week) % 7) end puts today = Date.today # 2015-02-24 puts next_friday = get_next_day(today, 5) # 2015-02-27 puts last_friday = get_previous_day(today, 5) # 2015-02-20


Si está utilizando rieles, puede usar Date.today.sunday para el domingo o Date.today.monday para el lunes. Y luego Date.today.sunday - 1.day for Saturday, etc.


require ''date'' def date_of_next(day) date = Date.parse(day) delta = date > Date.today ? 0 : 7 date + delta end Date.today #=>#<Date: 2011-10-28 (4911725/2,0,2299161)> date_of_next "Monday" #=>#<Date: 2011-10-31 (4911731/2,0,2299161)> date_of_next "Sunday" #=>#<Date: 2011-10-30 (4911729/2,0,2299161)>