Как найти дату конца недели в Ruby?

В Visual Studio добавляют, что Ширина и Высота приписывают Вашему UserControl XAML, но в коде - позади вставки это

public UserControl1()
{
    InitializeComponent();
    if (LicenseManager.UsageMode != LicenseUsageMode.Designtime)
    {
        this.Width = double.NaN; ;
        this.Height = double.NaN; ;
    }
}

Это проверяет, чтобы видеть, работает ли управление в Режиме проектирования. Если не (т.е. время выполнения) это установит Ширину и Высоту к NaN (Не число), который является значением, Вы устанавливаете его на то, если Вы удаляете атрибуты Ширины и Высоты в XAML.

Так во время проектирования у Вас будут предварительно установленная ширина и высота (включая то, если Вы поместите пользовательский элемент управления в форму), и во времени выполнения это прикрепится в зависимости от его родительского контейнера.

Hope, которая помогает.

5
задан the Tin Man 5 March 2012 в 23:21
поделиться

4 ответа

You could use end_of_week (AFAIK only available in Rails)

>> Date.new(2009, 11, 19).end_of_week - 2
=> Fri, 20 Nov 2009

But this might not work, depending what exactly you want. Another way could be to

>> d = Date.new(2009, 11, 19)
>> (d..(d+7)).find{|d| d.cwday == 5}
=> Fri, 20 Nov 2009

lets assume you want to have the next friday if d is already a friday:

>> d = Date.new(2009, 11, 20) # was friday
>> ((d+1)..(d+7)).find{|d| d.cwday == 5}
=> Fri, 27 Nov 2009
13
ответ дан 18 December 2019 в 07:55
поделиться

d = Date.new(2009, 11, 19)
d+=(5-d.wday) > 0 ? 5 - d.wday : 7 + 5 - d.wday
2
ответ дан 18 December 2019 в 07:55
поделиться

Поскольку операция по модулю Ruby (%) возвращает положительные числа, когда ваш делитель положительный, вы можете сделать это:

some_date = Date.new(2009, 11, 19)
next_friday = some_date + (5 - some_date.cwday) % 7

Единственная проблема, которую я вижу здесь, если some_date - это пятница, то next_friday будет той же датой, что и some_date . Если это нежелательное поведение, вместо него можно использовать небольшую модификацию:

some_date = Date.new(...)
day_increment = (5 - some_date.cwday) % 7
day_increment = 7 if day_increment == 0
next_friday = some_date + day_increment

Этот код не полагается на дополнительные внешние зависимости, а в основном полагается на целочисленную арифметику.

1
ответ дан 18 December 2019 в 07:55
поделиться

Rails ' ActiveSupport :: CoreExtensions :: Date :: Calculations имеет методы, которые могут помочь ты. Если вы не используете Rails, вам может потребоваться ActiveSupport.

1
ответ дан 18 December 2019 в 07:55
поделиться
Другие вопросы по тегам:

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