it-swarm.com.de

Druckdatum für den Montag der aktuellen Woche (in Bash)

Ich möchte ein Datum im Format "JJJJMMTT" (zum Beispiel heute 20110627) für den Montag der aktuellen Woche erhalten. Von morgen bis Sonntag möchte ich immer noch das Montagdatum (das heutige) ausdrucken. Nächste Woche wiederholen Sie den Vorgang

28
vehomzzz
#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.

wenn es sich um einen Bereich handelt, müssen Sie ein paar Dinge tun

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

was würde ausgeben:

20110628-20110703

Mehr zu Terminen

beachten Sie, dass dies nur am GNU Datum funktioniert

Ich habe das gelesen:

Solaris-Version des Datums, die nicht zur Unterstützung von -d kann mit .__ aufgelöst werden. Ersetzung der sunfreeware.com-Version von Datum

57
matchew

Für diejenigen von uns ohne GNU - Datum (wie wir OS Xers) haben wir möglicherweise den Parameter "-v"

Sie können dann folgendes tun:

# 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

Dies scheint auch kein Problem zu sein, wenn heute Montag ist, in meinem aktuellen Fall Donnerstag

# 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
11
Sam Tsai

Versuchen Sie dies, um das aktuelle Datum des Montags abzurufen.

wd=`date +%u`; 
let wd=wd-1; 
mon=`date --date="-$wd day" +%Y%m%d`;
8
Femi

Ich denke, das beantwortet eigentlich das, was verlangt wurde:

date -d "next monday - 7 days"
0
stef