Как вычислить затем, в предыдущий рабочий день в направляющих?

Попытка:

<xsl:value-of select="count(preceding-sibling::*) + 1" />

Редактирование - имело мозговое замораживание там, положение () более просто!

10
задан Arslan Ali 14 April 2016 в 09:29
поделиться

2 ответа

Насколько я понимаю, это то, что вы ищете? (протестировал)

require 'date'
def next_business_day(date)
  skip_weekends(date, 1)
end    

def previous_business_day(date)
  skip_weekends(date, -1)
end

def skip_weekends(date, inc = 1)
  date += inc
  while date.wday == 0 || date.wday == 6
    date += inc
  end   
  date
end

Вы можете проверить это следующим образом:

begin
  t = Date.new(2009,9,11) #Friday, today
  puts "Today: #{Date::DAYNAMES[t.wday]} #{Date::MONTHNAMES[t.mon]} #{t.day}"
  nextday = next_business_day(t)
  puts "Next B-day: #{Date::MONTHNAMES[nextday.mon]} #{nextday.day}"
  previousday = previous_business_day(nextday)
  puts "back to previous: #{Date::MONTHNAMES[previousday.mon]} #{previousday.day}"
  yesterday = previous_business_day(previousday)
  puts "yesterday: #{Date::MONTHNAMES[yesterday.mon]} #{yesterday.day}"  
end  
18
ответ дан 3 December 2019 в 13:44
поделиться

Ну, вы можете использовать что-то вроде вчера = 1.days.ago , чтобы получить вчерашнюю дату. Используйте вчера.strftime ('% w') , чтобы получить день недели в виде целого числа (0 = воскресенье, 6 = суббота). Если вчера 0 (воскресенье), тогда предыдущий день недели будет 3. days.ago ... вы поняли.

И вы можете использовать завтра = 1.days.since , чтобы получить дату завтрашнего дня.

0
ответ дан 3 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

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