主要是对闰年平年、大月小月的处理
就是大月31天,小月30天
针对2月判断是闰年还是平年,润年29天,平年28天
脚本
使用方法,将代码保存为get_everyday.sh
然后执行bash get_everyday.sh 2020
日期格式为20200101~20201231这样的8位数字
它会保存到脚本同目录下的2020_everyday.txt
想要哪一年就将2020改为你需要的年份
没有针对年份参数处理,也就是你执行bash get_everyday.sh 0000
之类的,会输出错误的年份,如果是传入字母、文字之类的参数,会把字母、文字当成年份输出。
比如执行bash get_everyday.sh abc
,会输出abc0101~abc1231
get_Feb()
{
year=$1
let "y1=$year % 4"
let "y2=$year % 100"
let "y3=$year % 400"
if [ ! "$y1" -eq 0 ]
then
leap=0
elif [ ! "$y2" -eq 0 ]
then
leap=1
elif [ "$y3" -eq 0 ]
then
leap=1
else
leap=0
fi
if [ "$leap" -eq 1 ]
then
echo 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
else
echo 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
fi
}
get_day()
{
case $1 in
01|03|05|07|08|10|12)
echo 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
;;
02)
echo $(get_Feb $year)
;;
04|06|09|11)
echo 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
;;
*)
esac
}
year=$1
for month in 01 02 03 04 05 06 07 08 09 10 11 12
do
for day in $(get_day $month)
do
echo $year$month$day >> $year"_everyday.txt"
done
done
原创文章,作者:陌涛,如若转载,请注明出处:https://imotao.com/4421.html