Вычислите дату начала и название четверти с данной даты

Если это управляет поведением модели, то константы должны быть частью модели:

class Model < ActiveRecord::Base
  ONE = 1
  TWO = 2

  validates_inclusion_of :value, :in => [ONE, TWO]
end

Это позволит Вам использовать встроенную функциональность направляющих:

>> m=Model.new
=> #
>> m.valid?
=> false
>> m.value = 1
=> 1
>> m.valid?
=> true

, С другой стороны, если Ваши перечисления поддержки БД, то можно использовать что-то как Перечислимый плагин Столбца .

40
задан cllpse 29 September 2009 в 11:52
поделиться

2 ответа

Something like (untested):

DateTime date;
int quarterNumber = (date.Month-1)/3+1;
DateTime firstDayOfQuarter = new DateTime(date.Year, (quarterNumber-1)*3+1,1);
DateTime lastDayOfQuarter = firstDayOfQuarter.AddMonths(3).AddDays(-1);
108
ответ дан 27 November 2019 в 01:09
поделиться
int GetQuarterName(DateTime myDate)
{
    return (int)Math.Ceiling(myDate.Month / 3.0);
}

DateTime GetQuarterStartingDate(DateTime myDate)
{
    return new DateTime(myDate.Year,(3*GetQuarterName(myDate))-2,1);
}

GetQuarterName получает «следующее» целочисленное значение номера текущего месяца / 3.

GetQuarterStartingDate использует выходные данные из GetQuarterName для расчета значение месяца, годовая часть исходной даты и 1, чтобы представить первый день месяца, который нужно вернуть.

(Извинения за бессмысленность, у меня грипп. :()

6
ответ дан 27 November 2019 в 01:09
поделиться
Другие вопросы по тегам:

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