我第一个shell Script

xiaoxiao2021-02-28  40

计算还有几天过生日

代码如下所示

#!/bin/bash months[0]=31 months[1]=0 months[2]=31 months[3]=30 months[4]=31 months[5]=30 months[6]=31 months[7]=31 months[8]=30 months[9]=31 months[10]=30 months[11]=31 echo "What's your birthday?(xx month xxday)" read BirthdayMonth read BirthdayDay function YearTest() { m=$1%4 n=$1@0 p=$10 if [ "$n" == 0 ]; then return 29 elif [ "$m" == 0 ] && [ "$p" != 0 ]; then return 29 else return 28 fi } function Count() { if [ "$2" -lt "$3" ]; then for((q=0; q<$(($a-1)); q++)) do m=months[$q] k=$(($m+$k)) done k=$(($2+$k-1)) for((j=$a; j<12; j++)) do n=months[$j] k=$(($k+$n)) done echo "Your birthday $(($k+$2)) days later" else echo "Your birthday $(($2-$3)) days later"          fi } function calculate() { CurrentMonth=$(date +%m) CurrentDay=$(date +%d) NextYear=$(($(date +%Y)+1)) a=$(($CurrentMonth-1)) b=$(($BirthdayMonth-1)) if [ "$BirthdayMonth" -ge "$CurrentMonth" ]; then temp=0 for(( i=$a; i<$b ;i++)) do t=months[$i] temp=$(($t+$temp)) done echo " Your birthday $(($temp-$CurrentDay+$BirthdayDay-1)) days later" elif [ "$BirthdayMonth" -lt "$CurrentMonth" ]; then YearTest $NextYear months[1]=$? k=0 m=0 for((q=0; q<$(($a-1)); q++)) do m=months[$q] k=$(($m+$k)) done k=$(($BirthdayDay+$k)) for((j=$a; j<12; j++)) do n=months[$j] k=$(($k+$n)) done echo "Your birthday $(($k-$CurrentDay-1)) days later" else count $BirthdayDay $CurrentDay fi } CurrentYear=$(date +%Y) YearTest $CurrentYear months[1]=$? calculate

转载请注明原文地址: https://www.6miu.com/read-2628771.html

最新回复(0)