免费注册 查看新帖 |

Chinaunix

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

如何获取每个月的第一个星期四的日期? [复制链接]

论坛徽章:
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
41 [报告]
发表于 2010-05-26 10:30 |只看该作者
回复 39# bbgg1983


确实如此,我也愚钝了。

求职 : 技术支持/维
论坛徽章:
0
42 [报告]
发表于 2010-05-26 11:03 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
43 [报告]
发表于 2010-05-26 11:04 |只看该作者
回复 40# xyx219


    哈哈,你这个同样有问题,试试2020 年4月

论坛徽章:
0
44 [报告]
发表于 2010-05-26 11:26 |只看该作者
不用cal的
#!/bin/sh
for i in {1..12}
do
week=$(date -d 2010-$i-1 +%w)
if [[ $week>4 ]]
then
num=$((11-$week))
else
num=$((4-$week))
fi
num=$(($num+1))
date -d 2010-$i-$num
done


[shb@localhost ~]$ ./datee
2010年 01月 07日 星期四 00:00:00 CST
2010年 02月 04日 星期四 00:00:00 CST
2010年 03月 04日 星期四 00:00:00 CST
2010年 04月 01日 星期四 00:00:00 CST
2010年 05月 06日 星期四 00:00:00 CST
2010年 06月 03日 星期四 00:00:00 CST
2010年 07月 01日 星期四 00:00:00 CST
2010年 08月 05日 星期四 00:00:00 CST
2010年 09月 02日 星期四 00:00:00 CST
2010年 10月 07日 星期四 00:00:00 CST
2010年 11月 04日 星期四 00:00:00 CST
2010年 12月 02日 星期四 00:00:00 CST

论坛徽章:
0
45 [报告]
发表于 2010-05-26 12:58 |只看该作者
这条最简单  
cal 5 2020 | rev | tr -s ' ' |awk '{print $3}' | sed '/^$/d' | head -2 |tail -1

论坛徽章:
0
46 [报告]
发表于 2010-05-26 13:00 |只看该作者
回复 43# bbgg1983


用这个无论日期怎么变化都没问题。
cal 5 2020 | rev | tr -s ' ' |awk '{print $3}' | sed '/^$/d' | head -2 |tail -1

论坛徽章:
0
47 [报告]
发表于 2010-05-26 13:28 |只看该作者
楼上的方法不错. 主要是我能看得懂.
rev用的很巧妙.

缺点是缺乏通用扩展性. 不过话说回来,就事论事就行了,想太多也不一定就好.

论坛徽章:
0
48 [报告]
发表于 2010-05-26 14:07 |只看该作者
回复 44# suxingwakeup


num=$((11-$week))
num=$(($num+1))

程序写的很NB,由其是这两句。很经典。

论坛徽章:
0
49 [报告]
发表于 2010-05-26 14:17 |只看该作者
回复 47# sellie


    稍做修改就很灵活了,把这命令写到脚本里,再把cal的“月”和“年”做成位置变量,从命令行输入这两个参数就可以变得很灵活。

论坛徽章:
0
50 [报告]
发表于 2010-05-26 16:12 |只看该作者
for i in {1..12};do date -d "$(( (11-$(date -d 2010-$i-1 +%w))%7))day 2010-$i-1" +%Y-%m-%d;done
您好,请问下黑哥,这里的11-$和最后的%7是什么意思?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP