如何在ruby中获取年份?

rn0zuynd  于 2023-04-11  发布在  Ruby
关注(0)|答案(5)|浏览(176)

在Ruby中获取任何特定日期的年份的最佳方法是什么?
例如:31/dec/2009应返回day 36501/feb/2008应返回day 32

pcww981p

pcww981p1#

基本上(如irb所示):

>> require 'date'

>> Date.today.to_s
=> "2009-11-19"

>> Date.today.yday()
=> 323

任何日期:

>> Date.new(y=2009,m=12,d=31).yday
=> 365

或者:

>> Date.new(2012,12,31).yday
=> 366

标签:Ruby Documentation

2w3rbyxf

2w3rbyxf2#

使用Date.new(year, month, day)为您需要的日期创建一个Date对象,然后使用yday获取一年中的第几天:

>> require 'date'
=> true
>> Date.new(2009,12,31).yday
=> 365
>> Date.new(2009,2,1).yday
=> 32
wfsdck30

wfsdck303#

您可以在不导入任何内容的情况下使用时间:

Time.new(1989,11,30).yday

或者现在:

Time.now.yday
nc1teljy

nc1teljy4#

Date#yday是你正在寻找的。
下面是一个例子:

require 'date'

require 'test/unit'
class TestDateYday < Test::Unit::TestCase
  def test_that_december_31st_of_2009_is_the_365th_day_of_the_year
    assert_equal 365, Date.civil(2009, 12, 31).yday
  end
  def test_that_february_1st_of_2008_is_the_32nd_day_of_the_year
    assert_equal 32, Date.civil(2008, 2, 1).yday
  end
  def test_that_march_1st_of_2008_is_the_61st_day_of_the_year
    assert_equal 61, Date.civil(2008, 3, 1).yday
  end
end

相关问题