#1、取一年的某一月有多少天(对闰年进行了特殊的处理)函数
#调用: GetDays yy mm
#输入: 1. yy年份
# 2. mm月份
#输出: 一个月的天数
# -1 不成功
#功能: 取一年的某一月有多少天(对闰年进行了特殊的处理)
###############################################################################
GetDays()
{
yy_tmp=$1
mm_tmp=`expr $2 + 0`
if [ $? -ge 2 ]; then
return -1
fi
case $mm_tmp in
1|3|5|7|8|10|12) ret_days=31
;;
4|6|9|11) ret_days=30
;;
2) ret_days=28
;;
esac
if [ $mm_tmp -eq 2 ]; then
yy_tmp1=`expr $yy_tmp / 4 \* 4`
if [ $? -ge 2 ]; then
return -1
fi
yy_tmp2=`expr $yy_tmp / 100 \* 100`
if [ $? -ge 2 ]; then
return -1
fi
yy_tmp3=`expr $yy_tmp / 400 \* 400`
if [ $? -ge 2 ]; then
return -1
fi
if [ $yy_tmp1 -eq $yy_tmp ]; then
if [ $yy_tmp2 -eq $yy_tmp ]; then
if [ $yy_tmp3 -eq $yy_tmp ]; then
ret_days=29
fi
else
ret_days=29
fi
fi
fi
return $ret_days
}
#调用: GetDays yy mm
#输入: 1. yy年份
# 2. mm月份
#输出: 一个月的天数
# -1 不成功
#功能: 取一年的某一月有多少天(对闰年进行了特殊的处理)
###############################################################################
GetDays()
{
yy_tmp=$1
mm_tmp=`expr $2 + 0`
if [ $? -ge 2 ]; then
return -1
fi
case $mm_tmp in
1|3|5|7|8|10|12) ret_days=31
;;
4|6|9|11) ret_days=30
;;
2) ret_days=28
;;
esac
if [ $mm_tmp -eq 2 ]; then
yy_tmp1=`expr $yy_tmp / 4 \* 4`
if [ $? -ge 2 ]; then
return -1
fi
yy_tmp2=`expr $yy_tmp / 100 \* 100`
if [ $? -ge 2 ]; then
return -1
fi
yy_tmp3=`expr $yy_tmp / 400 \* 400`
if [ $? -ge 2 ]; then
return -1
fi
if [ $yy_tmp1 -eq $yy_tmp ]; then
if [ $yy_tmp2 -eq $yy_tmp ]; then
if [ $yy_tmp3 -eq $yy_tmp ]; then
ret_days=29
fi
else
ret_days=29
fi
fi
fi
return $ret_days
}