- 论坛徽章:
- 33
|
本帖最后由 Shell_HAT 于 2010-07-23 12:44 编辑
- #!/bin/bash
- function date2days {
- echo "$1 $2 $3" | awk '{
- z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3;
- j=int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472633;
- print j
- }'
- }
- function days2date {
- echo "$1" | awk '{
- a=$1+2472632; b=int((4*a+3)/146097); c=int((-b*146097)/4)+a;
- d=int((4*c+3)/1461); e=int((-1461*d)/4)+c; m=int((5*e+2)/153);
- dd=-int((153*m+2)/5)+e+1; mm=int(-m/10)*12+m+3; yy=b*100+d-4800+int(m/10);
- printf ("%4d%02d%02d\n",yy,mm,dd)
- }'
- }
- function date2week {
- echo "$1 $2 $3" | awk '{
- z=int((14-$2)/12); y=$1+4800-z; m=$2+12*z-3;
- dow=(int((153*m+2)/5)+$3+y*365+int(y/4)-int(y/100)+int(y/400)-2472629)%7;
- print dow
- }'
- }
- year=`date +%Y`; month=`date +%m`; day=`date +%d`
- days=`date2days $year $month $day`
- week=`date2week $year $month $day`
- let dateEnd=$days-$week-1
- let dateBegin=$dateEnd-6
- for ((i=$dateBegin;i<=$dateEnd;i++)); do
- days2date $i
- done
复制代码 |
|