获取给定日期的几个月的Ruby方法属于

Mit*_*ran 9 ruby rubygems ruby-on-rails ruby-on-rails-3

我有一个约会,我想找出那个特定季度的月份.我怎样才能以最简单的方式在红宝石中完成这个?我的意思是如果我给出的日期是27-04-2011,那么我必须得到的结果是四月,五月,六月作为字符串或整数4月6日到4月6日.

Tin*_*n81 18

您可以通过以下方式从任何日期获得该季度:

quarter = (((Date.today.month - 1) / 3) + 1).to_i
Run Code Online (Sandbox Code Playgroud)

  • 这样一个干净而完美的答案。不知道为什么这还没有被接受。 (2认同)

Zac*_* Xu 6

您可以执行以下操作:

m = date.beginning_of_quarter.month
"#{m},#{m+1},#{m+2}"
Run Code Online (Sandbox Code Playgroud)

>> date=Date.parse "27-02-2011"
=> Sun, 27 Feb 2011  
>> m = date.beginning_of_quarter.month
=> 1
>> "#{m},#{m+1},#{m+2}"
=> "1,2,3"
Run Code Online (Sandbox Code Playgroud)


Mit*_*ran 5

您可以定义一个函数来接受作为date参数并返回季度

def current_quarter_months(date)
  quarters = [[1,2,3], [4,5,6], [7,8,9], [10,11,12]]
  quarters[(date.month - 1) / 3]
end
Run Code Online (Sandbox Code Playgroud)

该函数将根据日期所属季度的值返回数组。

  • @jaydel:当你无法欣赏他们的努力时,请至少不要让他们不必要地失望! (3认同)
  • 如果不出意外的话,OP 可能已经在提出聪明问题方面吸取了教训;-) http://catb.org/~esr/faqs/smart-questions.html (3认同)
  • @jaydel:是的,exaclty,否则他可以修改函数!Stackoverflow 是为了帮助人们而不是为人们编码 (2认同)
  • @jaydel:他的回答完全符合问卷的要求!! (2认同)
  • @Seane Paul:是的,我也承认这一点。但这是因为OP没有问他的问题,而Mithun是一个读心者(这是荣誉,而不是讽刺)。当我们回答和评估答案时,我们只有OP的问题要继续。它改变了。我什至删除了突然不正确的答案:P (2认同)