分享
 
 
 

如何计算一个日期是星期几

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

本来有这样的一个讨论的帖子,不小心被俺删掉了.觉得有些可惜,便写了一个贴上来.

#!/bin/ksh

getdayofweek()

{

# Function dayofweek

# Sample input:20020703

# Extract the month, day, and year

year=`echo $1|cut -c1-4`

month=`echo $1|cut -c5-6`

day0=`echo $1|cut -c7-8`

day=${day0#0}

# Get the calendar line for the specified day of the month/year

dline=`cal $month $year | sed 's// X /g; s/^/ /; s/$/ /' | grep " $day "`

# Compute the day of the week

IFS='

'

set $dline

dow=1 for weekday do

if [[ $day = $weekday ]]

then

break

else

(( dow = dow+1 ))

fi

done

# Convert the numeric day of the week to a string

case $dow in

1) print Sun ;;

2) print Mon ;;

3) print Tue ;;

4) print Wed ;;

5) print Thu ;;

6) print Fri ;;

7) print Sat ;;

*) print "wrong date" ;;

esac

}

这样就可以了

$ date -d "2002/08/13" "+%a"

运行不过呀!

斑竹的帖子确实有些问题。

dline=`cal $month $year | sed 's// X /g; s/^/ /; s/$/ /' | grep " $day "`

一行中的sed 参数有问题。

是这样的,我对sed不是特别熟悉,可能是引号内有些问题吧

我是测试过的呀.

用它试试!

get_whatdays()

{

year=`expr substr $1 1 4`

month=`expr substr $1 5 2`

day=`expr substr $1 7 2`

b=`cal $month $year|wc -l`

b=`expr $b - 1`

a=`cal $month $year |awk -v day=$day -v jl=$b '{for i=1;i<=NF;i++){if($i==day){if (NR==$i){print $i-1}else{print 7-NF+i-1}}}}'`

echo $a

}

{if($i==day){if (NR==$i){print $i-1}else{print 7-NF+i-1}}}}'`?

测试过么?

$i ----> i

if ( i==day){if (NR==i){print i-1}..........

我用过,没有问题.

你贴出来的程序,for后少了一个(.

且程序计算20020101时结果正确,计算20020103便出错了.

噢!对不起,我没有试过这个时间段。

真不好意思!!

get_whatdays()

{

year=`expr substr $1 1 4`

month=`expr substr $1 5 2`

day=`expr substr $1 7 2`

b=`cal $month $year|wc -l`

b=`expr $b - 1`

a=`cal $month $year |awk -v day=$day -v jl=$b '{for i=1;i<=NF;i++){if($i==day){if (NR==jl){print $i-1}else{print 7-NF+i-1}}}}'`

echo $a

}

老斑,现在试试?

得,又少了一个括号。

我测试可以了,又安照偶的习惯改了一个valentine版.

get_whatdays()

{

year=`echo $1|cut -c1-4`

month=`echo $1|cut -c5-6`

day=`echo $1|cut -c7-8`

b=`cal $month $year|wc -l `

cal $month $year |awk '{for(i=1;i<=NF;i++){if($i=='$day'){if (NR=='"$b"'-1

){print i-1}else{print 7-NF+i-1}}}}'

}

斑竹,

if (NR=='"$b"'-1

){print $i-1}

应该是

if (NR=='"$b"'-1

){print i-1}

编辑

发贴时间2002/08/21 11:19am

此 IP 为代理服务器IP: 已设置保密

该用户目前不在线 valentine

帅哥 此人为版主

头衔: 论坛版主

级别: 天使

魅力: 13074

经验: 11018

金钱: 28769 幽妮石

来自: 山东

总发贴数: 1471 篇

注册日期: 2002/03/01

消息

查看

搜索

好友

邮件

复制

引用

回复贴子回复

$i是指第i个字段的值

i是指i的值.

按照原程序,应该是$i.

对啊,

函数返回值应该是0-6

如果用$i-1,返回值超出0-6

我用20020825测试了,返回值是24(25-1)

应该是0(1-1)

那应该是你说的对.我把它改过来.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有