
エラーが発生しました。ユーザーが日付を送信すると、翌月を取得しようとします。
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
2つの異なるパラメータになり、日付ごとに必要に応じて読み取られません。