/ / Отримати понеділок та неділю тощо протягом тижня на будь-яку дату як параметр у Unix - linux, shell, unix, centos, unix-timestamp

Отримати понеділок і неділю тощо .. протягом тижня на будь-яку дату як параметр в Unix - Linux, shell, unix, centos, unix-timestamp

Як отримати дату понеділка та неділі за тиждень на дату?

Це дає дату для "останнього" понеділка:

date -dlast-monday +%Y%m%d

Я хочу вказати дату як параметр щоб знайти понеділок і неділю цього тижня. В основному я хочу отримати неділю і понеділок на тиждень, для будь-якої дати, НЕ тільки для останнього понеділка.

Відповіді:

8 для відповіді № 1

Спробуйте це:

export day=2013-10-01
date -d "$day -$(date -d $day +%w) days"

Це завжди буде друкувати неділю до вказаної дати (або самої дати).

date -d "$day -$(date -d $day +%u) days"

Це буде завжди друкувати в неділю до вказаної дати (і ніколи не сама дата).

Понеділок вам потрібно додати + 1 day:

date -d "$day -$(date -d $day +%u) days + 1 day"

Ви також повинні враховувати, які понеділки чи неділі ви хочете отримати (це не було ясно), на яку дату. Це також залежить від того, чи вважаєте ви неділю першим чи останнім днем ​​тижня.


0 для відповіді № 2

date може аналізувати дату в командному рядку таким чином:

date -j -f %s 1380628152

який є датою + час у секундах з часу роботи UNIXепоха Ви можете поєднати цю команду з вашою командою. -J означає, що ви не бажаєте встановлювати дату. -F вказує strftime-рядок, який використовується для аналізу дати в командному рядку.

Зверніть увагу, що це стосується системи BSD, і, як видно, ви знаходитесь в GNU-системі з різними варіантами на сьогодні (але вона повинна підтримувати щось подібне).