请教给问题,给分哦!shell 中输入一个日期参数,得到该日期的星期。

baoyongwei 2010-06-27 02:51:05
给日期参数,得到这个日期是星期几的shell,请教!!!不胜感激!
...全文
233 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mymtom 2010-07-02
  • 打赏
  • 举报
回复
注意星期天是0
mymtom 2010-07-02
  • 打赏
  • 举报
回复

#!/bin/sh

getweekday()
{
perl -e '
use Time::Local; use Time::localtime;
($year, $mon, $mday) = split(/[\/-]/, "'$1'");
print localtime(timelocal(0, 0, 0, $mday, $mon - 1, $year))->wday;
'
}

date
echo `getweekday "2010-07-01"`
echo `getweekday "2010/07/02"`
inslan 2010-07-02
  • 打赏
  • 举报
回复
最简单的:date -d "2010-7-2" +%A

如果不用date -d,没想出什么好办法,下面这个丑陋的方法可以(日期格式同2010-7-2)

#/bin/sh

if [ $# -ne 1 ]
then
echo "Usage ./printDay.sh [date]"
exit 100
fi

day=$1
mon=`echo $day|awk -F '-' '{print $2}'`
year=`echo $day| awk -F '-' '{print $1}'`
dd=`echo $day | awk -F '-' '{print $3}'`

cal $mon $year | sed '1d' | awk '{print $2}'|grep -w "$dd" > /dev/null && printf "Monday\n"
cal $mon $year | sed '1d' | awk '{print $3}'|grep -w "$dd" > /dev/null && printf "Tuesday\n"
cal $mon $year | sed '1d' | awk '{print $4}'|grep -w "$dd" > /dev/null && printf "Wednesday\n"
cal $mon $year | sed '1d' | awk '{print $5}'|grep -w "$dd" > /dev/null && printf "Thursday\n"
cal $mon $year | sed '1d' | awk '{print $6}'|grep -w "$dd" > /dev/null && printf "Friday\n"
cal $mon $year | sed '1d' | awk '{print $7}'|grep -w "$dd" > /dev/null && printf "Saturday\n"
cal $mon $year | sed '1d' | awk '{print $1}'|grep -w "$dd" > /dev/null && printf "Sunday\n"
baoyongwei 2010-07-02
  • 打赏
  • 举报
回复
我的服务器上不能使用date -d
,报错:
date: Not a recognized flag: d
Usage: date [-u] [+"Field Descriptors"]

用perl的办法好像也不行,你测试了吗?
masmaster 2010-06-27
  • 打赏
  • 举报
回复
echo day month year | awk '{for(i=1;i<=NF;i++)if($i~/day/)print i}'
山椒π 2010-06-27
  • 打赏
  • 举报
回复
data -d $DATA | awk '{print $4}'

其中$DATA要符合日期参数的格式,可以为 20100627, 2010-06-27, 2010/06/27, 06/27/2010这样的。
steptodream 2010-06-27
  • 打赏
  • 举报
回复

datestr=20100627
weekday=`date -d "$datestr" "+%w"`
echo $weekday


输出0代表星期天 1-6 分别代表星期1-星期6

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧