Как получить день года в рубине?

образец PHP :

$string = "A man, a plan, a canal, Panama";

function is_palindrome($string)
{
    $a = strtolower(preg_replace("/[^A-Za-z0-9]/","",$string));
    return $a==strrev($a);
}

Удаляет любые неалфавитно-цифровые символы (пробелы, запятые, восклицательные знаки, и т.д.) для обеспечения полных предложений как выше, а также простые слова.

18
задан wattostudios 30 April 2012 в 17:34
поделиться

4 ответа

В основном (показано здесь в 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 Документация

63
ответ дан 30 November 2019 в 05:53
поделиться

Используйте Date.new (год, месяц, день) , чтобы создать объект Date для нужной вам даты, затем получите день года с помощью yday :

>> require 'date'
=> true
>> Date.new(2009,12,31).yday
=> 365
>> Date.new(2009,2,1).yday
=> 32
2
ответ дан 30 November 2019 в 05:53
поделиться

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
1
ответ дан 30 November 2019 в 05:53
поделиться

вы могли бы что-то сделать с civil_to_jd (y, m, d, sg = GREGORIAN)

из

http://ruby-doc.org/core/classes /Date.html[1276 visible

0
ответ дан 30 November 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: