Получить текущий год и месяц (и в следующем месяце) в этом формате YYYYMM в Ruby - программирование
Подтвердить что ты не робот

Получить текущий год и месяц (и в следующем месяце) в этом формате YYYYMM в Ruby

Как получить текущую дату и месяц в Ruby в определенном формате?

Если сегодня 8 июня 2012 года, я хочу получить 201206.

А также, я хотел бы иметь возможность получить следующий месяц от того, с которым мы находимся, принимая во внимание, что в 201212 следующий месяц будет 201301.

4b9b3361

Ответ 1

Я бы сделал это вот так:

require 'date'
Date.today.strftime("%Y%m")
#=> "201206"
(Date.today>>1).strftime("%Y%m")
#=> "201207"

Преимущество Дата # " > заключается в том, что он автоматически заботится о вас для определенных вещей:

Date.new(2012,12,12)>>1
#=> #<Date: 2013-01-12 ((2456305j,0s,0n),+0s,2299161j)>

Ответ 2

Текущий месяц:

date = Time.now.strftime("%Y%m")

В следующем месяце:

if Time.now.month == 12
  date = Time.now.year.next.to_s + "01"
else
  date = Time.now.strftime("%Y%m").to_i + 1
end

Ответ 3

Как и в Ruby 2, "next_month" - это метод в Date:

require "Date"

Date.today.strftime("%Y%m")
# => "201407"

Date.today.next_month.strftime("%Y%m")
# => "201408"

Ответ 4

require 'date'
d=Date.today                    #current date
d.strftime("%Y%m")              #current date in format
d.next_month.strftime("%Y%m")   #next month in format

Ответ 5

используйте http://strfti.me/ для такого рода материалов

strftime "%Y%m"