bash 다음 달 오류

bash 다음 달 오류

오류가 발생했습니다. 사용자가 날짜를 보내면 다음 달을 얻으려고 합니다.

D="2019/12/01";
D=$(date -d "$D");
echo "Current Date = $D";

인쇄Current Date = Sun Dec 1 00:00:00 EST 2019

current_month=$(date -d "$D" '+%m');
echo "Current Month = $current_month";

인쇄Current Month = 12

nextm=$(date -d "$D" "+next months");
echo "Next Month = $nextm";

인쇄 Next Month = next months 다음 달은 어떻게 받나요?

**************** 갱신************************

D="2019/11/01";
D=$(date -d "$D");
echo "Current Date = $D";
Current Date = Fri Nov  1 00:00:00 EDT 2019
current_month=$(date -d "$D" '+%m');
echo "Current Month = $current_month";
Current Month = 11

next_date=$(date -d "$D next month")
echo "Next Date = $next_date";
Next Date = Sat Nov 30 23:00:00 EST 2019
next_year=$(date -d "$next_date" '+%Y');
echo "Next Year = $next_year";
Next Year = 2019

12월 1일이 아닌 11월 30일을 인쇄합니다.

답변1

다음과 같이 입력 날짜 문자열(GNU Date 사용)에 월을 추가할 수 있습니다.

nextm=$(date -d "$D +1 month")

또는:

nextm=$(date -d "$D next month")

$D과 를 별도로 인용하면 +next months서로 다른 두 개의 매개변수가 되어 날짜별로 원하는 대로 읽히지 않습니다.

관련 정보