#!/bin/bash
read -p "请输入年月日>>" year month day
if [ ${month} -lt 1 -o ${month} -gt 12 ]
then
echo "输入月份不合法"
fi
if (((year%4 == 0 && year%100 != 0) || year%400 == 0))
then
flag=0 #闰年
else
flag=1 #平年
fi
case $month in
[13578]|'10'|'12')
if [ $day -lt 1 -o $day -gt 31 ]
then
echo "日 输入不合法"
exit
fi
;;
'2')
if [ ${flag} -eq 0 ]
then
if [ $day -lt 1 -o $day -gt 29 ]
then
echo "日 输入不合法"
exit
fi
else
if [ $day -lt 1 -o $day -gt 28 ]
then
echo "日 输入不合法"
exit
fi
fi
;;
*)
if [ $day -lt 1 -o $day -gt 30 ]
then
echo "日 输入不合法"
exit
fi
;;
esac
jj=$((${month}-1))
for jj in $(seq 1 ${jj})
do
case $jj in
[13578]|'10'|'12')
ddd=31
;;
'2')
if [ ${flag} -eq 0 ]
then
ddd=29
else
ddd=28
fi
;;
*)
ddd=30
;;
esac
((sum+=$ddd))
done
echo "$year $month $day 是$year年第$((${sum}+day))天"
shell脚本-计算某年某月某日是当年的第几天
于 2022-07-15 21:09:38 首次发布