查找Sinatra中两个日期之间的月数(2018-05-23&2018-06-22)

时间:2018-06-22 06:39:32

标签: ruby-on-rails sinatra

我需要找到两个日期之间的月数,即2018-05-23和2018-06-22。

提供的日期相差30天。但是,他们是两个月。那么我们该怎么做呢?

我需要以正确的升序输出日期。

我尝试过

diffMonth = (date2_year.to_i * 12 + date2_month.to_i) - (date1_year.to_i * 12 + date2_month.to_i)

但是,它的显示差异是一个月。

我还尝试了此解决方案difference of month between 2 dates,该链接的结果也显示为1个月。

我最初的问题是按升序显示日期。我正在使用此方法对日期进行排序,但是如果日期在一个月之内,那么它就可以工作,但是如果在2个月之间,则显示错误的顺序。

arr.sort_by { |h| a = h[:date].to_s }.reverse

我应该在这里添加我的输出,这是当日期如上所述时。

 [{
    "date": "Jun-01",
    "data": 0
}, {
    "date": "Jun-02",
    "data": 0
}, {
    "date": "Jun-03",
    "data": 0
}, {
    "date": "Jun-04",
    "data": 0
}, {
    "date": "Jun-05",
    "data": 0
}, {
    "date": "Jun-06",
    "data": 0
}, {
    "date": "Jun-07",
    "data": 0
}, {
    "date": "Jun-08",
    "data": 0
}, {
    "date": "Jun-09",
    "data": 0
}, {
    "date": "Jun-10",
    "data": 0
}, {
    "date": "Jun-11",
    "data": 0
}, {
    "date": "Jun-12",
    "data": 0
}, {
    "date": "Jun-13",
    "data": 0
}, {
    "date": "Jun-14",
    "data": 0
}, {
    "date": "Jun-15",
    "data": 0
}, {
    "date": "Jun-16",
    "data": 0
}, {
    "date": "Jun-17",
    "data": 0
}, {
    "date": "Jun-18",
    "data": 0
}, {
    "date": "Jun-19",
    "data": 0
}, {
    "date": "Jun-20",
    "data": 0
}, {
    "date": "Jun-21",
    "data": 0
}, {
    "date": "Jun-22",
    "data": 0
}, {
    "date": "May-23",
    "data": 0
}, {
    "date": "May-24",
    "data": 1
}, {
    "date": "May-25",
    "data": 0
}, {
    "date": "May-26",
    "data": 0
}, {
    "date": "May-27",
    "data": 0
}, {
    "date": "May-28",
    "data": 0
}, {
    "date": "May-29",
    "data": 0
}, {
    "date": "May-30",
    "data": 0
}, {
    "date": "May-31",
    "data": 0
}]

如果日期在一个月之内,则输出为

[{
    "date": "Jun-01",
    "data": 0
}, {
    "date": "Jun-02",
    "data": 0
}, {
    "date": "Jun-03",
    "data": 0
}, {
    "date": "Jun-04",
    "data": 0
}, {
    "date": "Jun-05",
    "data": 0
}, {
    "date": "Jun-06",
    "data": 0
}, {
    "date": "Jun-07",
    "data": 0
}, {
    "date": "Jun-08",
    "data": 0
}, {
    "date": "Jun-09",
    "data": 0
}, {
    "date": "Jun-10",
    "data": 0
}, {
    "date": "Jun-11",
    "data": 0
}, {
    "date": "Jun-12",
    "data": 0
}, {
    "date": "Jun-13",
    "data": 0
}, {
    "date": "Jun-14",
    "data": 0
}, {
    "date": "Jun-15",
    "data": 0
}, {
    "date": "Jun-16",
    "data": 0
}, {
    "date": "Jun-17",
    "data": 0
}, {
    "date": "Jun-18",
    "data": 0
}, {
    "date": "Jun-19",
    "data": 0
}, {
    "date": "Jun-20",
    "data": 0
}, {
    "date": "Jun-21",
    "data": 0
}, {
    "date": "Jun-22",
    "data": 0
}, {
    "date": "Jun-23",
    "data": 0
}, {
    "date": "Jun-24",
    "data": 0
}, {
    "date": "Jun-25",
    "data": 0
}, {
    "date": "Jun-26",
    "data": 0
}, {
    "date": "Jun-27",
    "data": 0
}, {
    "date": "Jun-28",
    "data": 0
}, {
    "date": "Jun-29",
    "data": 0
}, {
    "date": "Jun-30",
    "data": 0
}]

否则我们可以对其进行正确排序吗?

1 个答案:

答案 0 :(得分:2)

如果您可以控制日期的生成方式,那么最好也有年份数据,如果您不关心年份数据,则可以使用

-root
--Home
--about
--footernavigation // Exclude from realUrl from page property
-- allgemeinx

希望这会有所帮助。