- 论坛徽章:
- 0
|
看起来有点复杂
算起来倒是对的,算头不算尾.
#!/bin/sh
#if [ $# -ne 3 ];then
#echo "Usage myproc 20040101 20060102"
#exit
#fi
#计算$y-$Y年的天数
comp_YT()
{
T=0
tTy=0
while [ $y -le $Y ]
do
if [ `expr $y % 4` -eq 0 -a `expr $y % 100` -ne 0 ]||[ `expr $y % 400` -eq 0 ];then
T=366
else T=365
fi
tTy=`expr $tTy + $T`
y=`expr $y + 1`
done
}
#判断是否润年
comp_flag()
{
if [ `expr $YY % 4` -eq 0 -a `expr $YY % 100` -ne 0 ]||[ `expr $YY % 400` -eq 0 ];then
flag=1
else flag=0
fi
}
#计算月天数
comp_MT()
{
tM=0
tTm=0
while [ $m -le 12 ]
do
if [ $flag -eq 1 ];then
case $m in
1|3|5|7|8|10|12)
tM=31;;
2) tM=29;;
4|6|9|11)
tM=30;;
esac
tTm=`expr $tTm + $tM`
else
case $m in
1|3|5|7|8|10|12)
tM=31;;
2) tM=28;;
4|6|9|11)
tM=30;;
esac
tTm=`expr $tTm + $tM`
fi
m=`expr $m + 1`
done
}
y=`echo $1|cut -c1-4`
y=`expr $y + 1`
Y=`echo $2|cut -c1-4`
comp_YT
YY=`echo $1|cut -c1-4`
comp_flag
M=`echo $1|cut -c5-6`
m=`expr $M \* 1`
D=`echo $1|cut -c7-8`
comp_MT
T1=`expr $tTy + $tTm - $D`
YY=`echo $2|cut -c1-4`
m=`echo $2|cut -c5-6`
m=`expr $m \* 1`
D=`echo $2|cut -c7-8`
comp_flag
comp_MT
T2=`expr $tTm - $D`
echo `expr $T1 - $T2` |
|