Solved Previous month start date and end date

Hello everybody.
How to I get previous month start date and end date in bash script?

I write this code but it's wrong in February month length:
Code:
month=$(date -j -v-1m +'%m')
    
     case $month in
       01)
         mlen="31"
       ;;
       02)
         mlen="28"
       ;;
       03)
         mlen="31"
       ;;
       04)
         mlen="30"
       ;;
       05)
         mlen="31"
       ;;
       06)
         mlen="30"
       ;;
       07)
         mlen="31"
       ;;
       08)
         mlen="31"
       ;;
       09)
         mlen="31"
       ;;
       10)
         mlen="30"
       ;;
       11)
         mlen="31"
       ;;
       12)
         mlen="31"
       ;;
     esac
    
     DOM=$(date +%d)
     DOM=$(echo "$DOM-1" | bc)
     firstday="$(date -j -v-"$DOM"d -v-1m +'%Y-%m-%d')"
     lastday="$(date -j -v-1m -v-"$DOM"d -v+"$mlen"d -v-1d +'%Y-%m-%d')"
 
hahahaha I solved this.
Code:
month=$(date +'%m')
       if [ $month -eq 12 ]; then
         mlen=$(date -v1d -v1m -v+1y -v-1d +'%d')
       else
         mlen=$(date -v1d -v"$month"m -v-1d  +'%d')
       fi
      
       DOM=$(date +%d)
       DOM=$(echo "$DOM-1" | bc)
       firstDay="$(date -j -v-"$DOM"d +'%Y-%m-%d')"
       firstLastMonth="$(date -j -v-"$DOM"d -v-1m +'%Y-%m-%d')"
       LastLastMonth="$(date -j -v-1m -v-"$DOM"d -v+"$mlen"d -v-1d +'%Y-%m-%d')"
 
Back
Top