Używam poniżej, aby uzyskać poprzedni, bieżący i następny miesiąc pod Ubuntu
11.04:Używając polecenia `dzień spełnienia wymogu, aby poprzedni, bieżący i następny miesiąc
LAST_MONTH=`date +'%m' -d 'last month'`
NEXT_MONTH=`date +'%m' -d 'next month'`
THIS_MONTH=`date +'%m' -d 'now'`
To działa dobrze aż do dzisiaj, ostatniego dnia października 2012 (31.10.2012)
uzyskać wynik poniżej już teraz:
$ date
Wed Oct 31 15:35:26 PDT 2012
$ date +'%m' -d 'last month'
10
$ date +'%m' -d 'now'
10
$ $ date +'%m' -d 'next month'
12
Przypuszczam wyjścia powinna być 9
, 10
, 11
odpowiednio.
Nie rozumiem, dlaczego wyjścia wyjściowe zachowują się w ten sposób. Jaki powinien być dobry sposób, aby uzyskać stały miesiąc w postaci: previous
, current
i next
?
Nie możesz po prostu dostać miesiąca dla 'teraz', a następnie dodać lub odjąć 1? –
Dzięki. Rozumiem, że to dzieło pod warunkiem, że zajmujesz się 'Dec + 1 = Jan' itp. Moje pytanie brzmi: dlaczego powyższe nie działa. – greeness
Możesz uzyskać więcej informacji, drukując pełną datę obliczoną dla "ostatniego miesiąca" i "następnego miesiąca". Nie mam teraz terminalu uniksowego, ale domyślam się, że po prostu dodaje/odejmuje 30 dni do/od 'teraz'. –