2016-11-22 20 views
0

Rubyでどのように日付期間を書くことができますか? September 1 - 30, 2016日付Aから日付Bまでのルビー日付形式

はまた、それが今年検討する必要があります。

date_a = Time.at() # <= new 
date_b = Time.at() # <= old 

私のようなものを持っているのが大好きです。 (それは1月、

にかどう例それはDecember 25 2016 - January 25 2017でなければなりません。)

答えて

4

あなたはこの

def format_dates(*dates) 
    date1, date2 = dates.sort 
    return "#{date1.strftime("%B %d %Y")} if date1 == date2 

    if date1.year == date2.year 
    if date1.month == date2.month 
     "#{date1.strftime("%B")} #{date1.day} - #{date2.day}, #{date1.year}" 
    else 
     "#{date1.strftime("%B %d")} - #{date2.strftime("%B %d")}, #{date1.year}" 
    end 
    else 
    "#{date1.strftime("%B %d %Y")} - #{date2.strftime("%B %d %Y")}" 
    end 
end 

p format_dates(Date.parse('25/12/2016'), Date.parse('25/01/2017')) 
# => "December 25 2016 - January 25 2017" 
p format_dates(Date.parse('25/12/2016'), Date.parse('25/01/2016')) 
# => "January 25 - December 25, 2016" 
+0

ような何かを行うことができ、私は「2016年1月25日から12月25日までを」見て今まで覚えていません。 。私は、同じ月と同じ年、あるいは同じ年と同じ年ではないという2つのケースしかないと思います。もちろん、変更は簡単です。 Upvoted。 –