달력은 날짜를 확인한 후 3개월 전을 검색하여 해당 달의 일수를 추가합니다.

달력은 날짜를 확인한 후 3개월 전을 검색하여 해당 달의 일수를 추가합니다.

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

관련 정보