Вывести дату на понедельник текущей недели (в bash) - PullRequest
28 голосов
/ 27 июня 2011

Я хочу получить дату в формате «ГГГГММДД» (например, сегодня будет 20110627) для понедельника текущей недели.С завтрашнего дня и до воскресенья я хотел бы распечатать понедельник (сегодняшнюю) дату.Затем на следующей неделе повторите процесс

Ответы [ 4 ]

60 голосов
/ 27 июня 2011
#monday
date -dmonday +%Y%m%d

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

#next monday
date -dnext-monday +%Y%m%d

#two mondays from now
date -d'monday+14 days' +%Y%m%d

#two mondays ago
date -d'monday-14 days' +%Y%m%d

#although, if you fancy yourself an Abraham Lincolin
date -d'monday-fortnight ago' +%Y%m%d #2 weeks ago
date -d'monday+fortnight' +%Y%m%d #2 weeks from now

#Monday Next Year
date -d'52+monday' +%Y%m%d

#However, Monday Last Year
date -d'52-monday' +%Y%m%d  #DOES NOT  WORK




#you can try a day other than monday
#and format this differently.

если диапазон - это то, что вам нужно, вам может понадобиться сделать несколько вещей

#Tuesday to Sunday
#since today is monday, I'll use Tuesday
echo `date -dtuesday +%Y%m%d-``date -dnext-sunday +%Y%m%d`

который будет выводить:

20110628-20110703

Подробнее о сроках

обратите внимание, это работает только на дату GNU

Я прочитал это:

версия даты Solaris, которая не может для поддержки -d можно разрешить с замена sunfreeware.com версии дата

12 голосов
/ 27 июня 2013

Для тех из нас, у кого нет даты GNU (как мы, OS Xers), у нас может быть параметр "-v"

Затем вы можете сделать это:

# Most recent Monday
date -v -Mon

# Output as of this writing
Mon Jun 24 12:35:48 EDT 2013

date -v -Mon "+%Y%m%d"

# Outputs
20130624

Это также, похоже, не проблема, если сегодня понедельник, в моем текущем случае четверг

# Today's date
date

# Outputs
Thu Jun 27 12:41:39 EDT 2013

# Most recent Thursday
date -v -Thu

# Outputs
Thu Jun 27 12:41:46 EDT 2013
8 голосов
/ 27 июня 2011

Попробуйте получить текущую дату понедельника.

wd=`date +%u`; 
let wd=wd-1; 
mon=`date --date="-$wd day" +%Y%m%d`;
0 голосов
/ 02 февраля 2019

Я думаю, что это действительно отвечает на то, что было запрошено:

date -d "next monday - 7 days"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...