免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wmjie
打印 上一主题 下一主题

[原创]awk 计算星期几 [复制链接]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
31 [报告]
发表于 2010-04-23 11:24 |只看该作者
回复 29# ghp268

    $ cal 1 1 1900
    January 1900
Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6
7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31


$ cal 1 1 0
cal: illegal year value: use 1-9999

$ cal 1 1 1
      January 1
Su Mo Tu We Th Fr Sa
                   1
2  3  4  5  6  7  8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31


$ cal 1 1 -770
cal: illegal year value: use 1-9999

论坛徽章:
0
32 [报告]
发表于 2010-04-23 11:24 |只看该作者
回复 21# springwind426


    刚推了下,1900-01-01是星期二,那么最后的输出应该是(2+d%7)%7

论坛徽章:
0
33 [报告]
发表于 2010-04-23 11:26 |只看该作者
刚看了黑哥的date
最后是否要改成
d-=1;print (1+d%7)%7

论坛徽章:
0
34 [报告]
发表于 2010-04-23 12:13 |只看该作者
回复  springwind426


    刚推了下,1900-01-01是星期二,那么最后的输出应该是(2+d%7)%7
ghp268 发表于 2010-04-23 11:24


cal 01 1900

           January 1900
Sun Mon Tue Wed Thu Fri Sat
     1   2   3   4   5   6
7   8   9  10  11  12  13
14  15  16  17  18  19  20
21  22  23  24  25  26  27
28  29  30  31

我这怎么是 周一?

论坛徽章:
0
35 [报告]
发表于 2010-04-23 12:19 |只看该作者
{:3_182:}

论坛徽章:
0
36 [报告]
发表于 2010-04-23 12:21 |只看该作者
回复 34# wmjie


    不好意思,我算错了,是星期一确定

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
37 [报告]
发表于 2010-04-23 13:07 |只看该作者
我也造个轮子:

  1. echo '20100423' | awk '{yy=substr($1,1,4)+0;mm=substr($1,5,2)+0;dd=substr($1,7,2)+0;z=14-mm;z=int(z/12);y=yy+4800-z;m=mm+12*z-3;dow=153*m+2;dow=int(dow/5)+dd+y*365+int(y/4)-int(y/100)+int(y/400)-2472630;dow%=7;dow+=1;print dow}'
复制代码

论坛徽章:
0
38 [报告]
发表于 2010-04-25 01:37 |只看该作者
本帖最后由 KevinLee39 于 2010-04-25 13:52 编辑

我也凑个热闹吧, 各UNIX平台通用
perl -mPOSIX=strftime -MTime::Local -e '$y=2010;$m=4;$d=1;print strftime("%u\n", localtime(timelocal(0,0,0,$d,$m-1,$y)))'

论坛徽章:
0
39 [报告]
发表于 2010-04-25 09:44 |只看该作者
强淫啊,我都没有看明白,cp代码自己看去。
学习了

论坛徽章:
0
40 [报告]
发表于 2010-04-26 09:47 |只看该作者
,看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP