Як отримати дату понеділка та неділі за тиждень на дату?
Це дає дату для "останнього" понеділка:
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-системі з різними варіантами на сьогодні (але вона повинна підтримувати щось подібне).