calコマンドまたはdateコマンドを使用して現在の日付を表示し、現在の日付から3ヶ月前を表示し、この3ヶ月のすべての日付を現在の日付に追加したいと思います。これを行う方法はありますか?
したがって、今日の日付は次のように表示されます。
Fri Dec 19 13:23:36 GMT 2014
3ヶ月前は次のようになりました。
Fri Sep 19 13:23:36 GMT 2014
私はLinuxが9月19日から12月19日までのすべての日付を追加し、その計算結果を表示したいと思います。
答え1
bash
そしてGNUdate
#grab today's date in YYYYMMDD format
today=$(date +%Y%m%d)
#grab date as of 3 months ago in YYYYMMDD format
three_months_ago=$(date +%Y%m%d --date='3 months ago')
#now convert dates to "seconds since epoch" format, and then divide the difference by 60*60*24 to convert from seconds to days
printf '%d\n' $(( ($(date --date=$today +%s) - \
$(date --date=$three_months_ago +%s))/(60*60*24) ))
91