linux shell日历,用shell写个万年历

#!/usr/bin/bash

year=0

printcalendar()

{

year=$1

week=$2

months=('January' 'February' 'March' 'April' 'May' ' June' 'July' 'August' 'September' 'October' 'November' 'December')

weeks=('Sun' 'Mon' 'Tue' 'Wen' 'Thu' 'Fri' 'Sat')

days=(31 28 31 30 31 30 31 31 30 31 30 31)

#for m in ${months[@]};

#do

# echo -n $m

#done

today=`date +%m-%d`

todaymonth=`echo $today | awk -F '-' '{print $1}'`

todayday=`echo $today | awk -F '-' '{print $2}'`

m=0

d=1

while [ $m -lt 12 ]

do

printf "< %-10s %-9i>\n" ${months[$m]} $year

for w in ${weeks[@]};

do

echo -n $w' '

done

echo ''

printf "%`expr $week \* 4`s" ' '

d=1

w=`expr $week + 0`

while [ $d -le ${days[$m]} ]

do

while [ $w -lt 7 -a $d -le ${days[$m]} ]

do

if [ `expr $m + 1` -eq $todaymonth -a $d -eq $todayday ]; then

printf " "

printf "\033[7m%2s\033[0m" $d

printf " "

else

printf "%3s " $d

fi

w=`expr $w + 1`

d=`expr $d + 1`

done

echo ''

week=`expr $w % 7`

w=0

done

m=`expr $m + 1`

echo ''

#break

done

}

getdays()

{

year=$1

y=1

days=1

while [ $y -lt $year ]

do

if [ `expr $y % 4` -eq 0 -a `expr $y % 100` -ne 0 ]; then

days=`expr $days + 1`

elif [ `expr $y % 400 ` -eq 0 ]; then

days=`expr $days + 1`

fi

days=`expr $days + 365 % 7`

y=`expr $y + 1`

done

echo $days

}

main()

{

year=$1

days=`getdays $year`

week=`expr $days % 7`

printcalendar $year $week

}

if [ $# -lt 1 ]; then

year=2015

else

year=$1

fi

today=`date +%m-%d`

todaymonth=`echo $today | awk -F '-' '{print $1}'`

todayday=`echo $today | awk -F '-' '{print $2}'`

echo $todayday

echo $todaymonth

main $year

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值