Как определить число заданного дня недели заданного года с помощью bash date без циклов?

Собственно вопрос, придумал себе задачку по пьяни, и вот неделю она меня уже не отпускает.
Как определить число заданного дня недели года с помощью bash date без циклов?

Например скрипт принимает 2018 6 (первое воскресенье 2018) и выводит 6 (шестое число).
Принимает 2003 3 (первый четверг 2003) и выводит 2 (второе число).

Почему без циклов?
Потому что я урод
Потому что так придумал.
Вот вроде звучало просто как два пальца об асфальт, а потом посидел и поседел.
  • Вопрос задан
  • 336 просмотров
Решения вопроса 1
PavelK
@PavelK
Эм, первое воскресенье это вроде бы 7е число...
В общем, либо я неправильно понял, либо вы неправильно что-то подсчитали.
Прямо в консольке:
year=2018
weekday=6 (суббота)
date -d "$year-01-01-$(date -d "$year--01-01" +%u)days+$weekday days +$((7*$(($year-$(date -d "$year-01-01-$(date -d "$year--01-01" +%u)days +$weekday days" +%Y ))))) days" +%d

На выходе "06", т.е. первая суббота 2018)
Отсчёт: 1-понедельник ...
Работает и так: weekday=6 (суббота первой недели), weekday=13 (то же суббота, но вторая неделя), 20 (суббота третьей недели) и т.д.
Вы мне должны мои 15 минут жизни :DDD
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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