Как определить число недели месяца

Попробуйте alexa транспортные детали, должен дать общее представление.

Что касается масштаба, в уникальных хитах в день.

  • крошечный <100
  • маленький <300
  • носитель <1000
  • большой <5000
  • огромный <10000
  • другой> 10000
10
задан 27 April 2012 в 08:45
5 ответов

Команда date не может сделать это внутренне, поэтому вам понадобится внешняя арифметика.

echo $((($(date +%-d)-1)/7+1))

Редактировать: Добавлен знак минус между% и d

21
ответ дан 2 December 2019 в 22:00

Попробуйте следующее:

d=`date +%d` ; m=`date +%m` ; y=`date +%Y` ; cal $m $y | sed -n "3,$ p" | sed -n "/$d/{=;q;}"
1
ответ дан 2 December 2019 в 22:00

Если вы принимаете внешние инструменты в своем поиске, попробуйте dateutils . У него есть понятие дат в пределах месяца, то есть 27 апреля 2012 года - это 4-я пятница апреля 2012 года, что как раз совпадает с вашим определением недели. Чтобы получить этот номер, используйте:

dconv 2012-04-27 -f %c
=>
  04

% c (число) - спецификатор формата для события в течение месяца. Или, чтобы быть еще круче, попробуйте

dconv today -f '%cth %a in %b %Y'
=>
  1st Wed in Sep 2012
0
ответ дан 2 December 2019 в 22:00

Вы можете использовать это:

Понедельник Первый день недели

WEEKNUMBER=$(( 1 + $(date +%V) - $(date -d "$(date -d "-$(($(date +%d)-1)) days")" +%V) ))

Воскресенье Дата первой недели

WEEKNUMBER=$(( 1 + $(date +%U) - $(date -d "$(date -d "-$(($(date +%d)-1)) days")" +%U) ))
2
ответ дан 2 December 2019 в 22:00

упрощение решения Виктора Санчеса:

expr 1 + $(date +%V) - $(date +%V -d $(date +%Y-%m-01))

замените% V на% U, если вы хотите, чтобы недели начинались в воскресенье.

кстати: пришлось использовать expr вместо $ ((. ..)) потому что последним не нравятся числа с ведущими нулями.

1
ответ дан 2 December 2019 в 22:00

Теги

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