免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 13994 | 回复: 27
打印 上一主题 下一主题

如何计算一个日期是星期几?  关闭 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-08-11 15:16 |只看该作者 |倒序浏览
[这个贴子最后由valentine在 2002/08/11 03:17pm 编辑]

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

#!/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&#59; s/^/ /&#59; 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 &#59;&#59;
        2) print Mon &#59;&#59;
        3) print Tue &#59;&#59;
        4) print Wed &#59;&#59;
        5) print Thu &#59;&#59;
        6) print Fri &#59;&#59;
        7) print Sat &#59;&#59;
        *) print "wrong date" &#59;&#59;
    esac
}

论坛徽章:
0
2 [报告]
发表于 2002-08-12 10:11 |只看该作者

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

up

论坛徽章:
0
3 [报告]
发表于 2002-08-14 01:16 |只看该作者

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

这样就可以了
$ date -d "2002/08/13" "+%a"

论坛徽章:
0
4 [报告]
发表于 2002-08-14 10:32 |只看该作者

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

运行不过呀!

论坛徽章:
0
5 [报告]
发表于 2002-08-14 11:24 |只看该作者

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

斑竹的帖子确实有些问题。
dline=`cal $month $year | sed 's// X /g&#59; s/^/ /&#59; s/$/ /' | grep " $day "`
一行中的sed 参数有问题。

论坛徽章:
0
6 [报告]
发表于 2002-08-14 11:46 |只看该作者

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

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

论坛徽章:
0
7 [报告]
发表于 2002-08-14 17:18 |只看该作者

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

我是测试过的呀.

论坛徽章:
0
8 [报告]
发表于 2002-08-15 00:00 |只看该作者

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

用它试试!
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&#59;i<=NF&#59;i++){if($i==day){if (NR==$i){print $i-1}else{print 7-NF+i-1}}}}'`
echo $a
}  


论坛徽章:
0
9 [报告]
发表于 2002-08-18 21:30 |只看该作者

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

{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}..........

论坛徽章:
0
10 [报告]
发表于 2002-08-18 22:22 |只看该作者

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

我用过,没有问题.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP