免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 44435 | 回复: 19

[日期时间] 上个月最后一个工作日 [复制链接]

论坛徽章:
6
15-16赛季CBA联赛之新疆
日期:2016-03-22 22:34:5915-16赛季CBA联赛之山东
日期:2016-04-11 09:08:41程序设计版块每日发帖之星
日期:2016-06-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-19 06:20:00每日论坛发贴之星
日期:2016-07-19 06:20:0015-16赛季CBA联赛之青岛
日期:2016-07-20 22:44:17
发表于 2016-08-09 00:32 |显示全部楼层
求教shell得到上个月最后一个工作日。
输入: 当前日期, 格式没要求, 例如2016年8月的任意一天
输出: 2016年7月29

先谢了

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
发表于 2016-08-09 07:20 |显示全部楼层

  1. cal -3|awk 'NR==1{printf "%s %s ",$2,$1;FS="[ ]";next}
  2. {d=($6>0)?$6:d}
  3. END{print d}'
复制代码

评分

参与人数 1信誉积分 +5 收起 理由
RE_HASH + 5 cal -3 03 2016 => 2016 February 26

查看全部评分

求职 : 技术支持/维
论坛徽章:
0
发表于 2016-08-09 09:02 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
6
15-16赛季CBA联赛之新疆
日期:2016-03-22 22:34:5915-16赛季CBA联赛之山东
日期:2016-04-11 09:08:41程序设计版块每日发帖之星
日期:2016-06-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-19 06:20:00每日论坛发贴之星
日期:2016-07-19 06:20:0015-16赛季CBA联赛之青岛
日期:2016-07-20 22:44:17
发表于 2016-08-09 09:20 |显示全部楼层
谢谢2,3楼!

论坛徽章:
5
金牛座
日期:2013-10-14 14:40:422015年亚洲杯之伊朗
日期:2015-03-26 10:37:012015亚冠之浦和红钻
日期:2015-10-12 17:47:4115-16赛季CBA联赛之山东
日期:2016-01-20 16:43:1215-16赛季CBA联赛之辽宁
日期:2016-03-29 16:43:59
发表于 2016-08-09 09:37 |显示全部楼层
我还是来亲民的吧
[root@xl4 ~]# read -p "date: " tt                  
date: 2016-03-09
[root@xl4 ~]# date -d "$tt -${tt##*-} day" +%Y-%m-%d
2016-02-29

评分

参与人数 1信誉积分 +5 收起 理由
RE_HASH + 5 2016-08-01 -- 2016-07-31

查看全部评分

论坛徽章:
10
天蝎座
日期:2013-09-22 22:32:23程序设计版块每日发帖之星
日期:2016-08-07 06:20:00lufei
日期:2016-06-17 17:38:40程序设计版块每日发帖之星
日期:2016-06-12 06:20:002016科比退役纪念章
日期:2016-05-31 15:47:20CU十四周年纪念徽章
日期:2016-05-27 12:24:562015年亚洲杯之阿曼
日期:2015-05-03 21:01:352015年辞旧岁徽章
日期:2015-03-03 16:54:15天蝎座
日期:2013-10-20 21:05:24程序设计版块每日发帖之星
日期:2016-08-11 06:20:00
发表于 2016-08-09 09:45 |显示全部楼层
本帖最后由 liion631818 于 2016-08-09 09:46 编辑
  1. #!/bin/bash

  2. read -p "please enter date(20YYMM):" mydate
  3. echo $mydate | grep -P '^[0-9]{8} 1>/dev/null 2>&1 || {
  4.         echo "date formate error, MUST 20YYMMDD"
  5.         exit
  6. }

  7. mydate=${mydate:0:6}

  8. beginning=`date -d "${mydate}01" +"%w"`
  9. if [[ beginning -eq 1 ]]; then
  10.         date -d "${mydate}01 -3 day" +"%Y年%m月%d"
  11. else
  12.         date -d "${mydate}01 -1 day" +"%Y年%m月%d"
  13. fi
复制代码

评分

参与人数 1信誉积分 +8 收起 理由
RE_HASH + 8 Worked after a typo fix, missing a ' af.

查看全部评分

论坛徽章:
307
程序设计版块每周发帖之星
日期:2016-04-08 00:41:33操作系统版块每日发帖之星
日期:2015-09-02 06:20:00每日论坛发贴之星
日期:2015-09-02 06:20:00程序设计版块每日发帖之星
日期:2015-09-04 06:20:00每日论坛发贴之星
日期:2015-09-04 06:20:00每周论坛发贴之星
日期:2015-09-06 22:22:00程序设计版块每日发帖之星
日期:2015-09-09 06:20:00程序设计版块每日发帖之星
日期:2015-09-19 06:20:00程序设计版块每日发帖之星
日期:2015-09-20 06:20:00每日论坛发贴之星
日期:2015-09-20 06:20:00程序设计版块每日发帖之星
日期:2015-09-22 06:20:00程序设计版块每日发帖之星
日期:2015-09-24 06:20:00
发表于 2016-08-09 11:01 |显示全部楼层
  1. perl -e 'BEGIN{@now=split(/-/,`date +%Y-%m-%d`)}{ while(++$n){$_=`date -d "-$n day" +%Y-%m-%d.%w`;if(/-(\d{2})[^.]+\K\.(\d)/ and $now[1]>$1 and $2==5){print $`;last}} }'
复制代码
2016-07-29

评分

参与人数 1信誉积分 +5 收起 理由
RE_HASH + 5 march gives 0226,but 0229 expected

查看全部评分

论坛徽章:
2
luobin
日期:2016-06-17 17:46:36lufei
日期:2016-06-17 17:49:16
发表于 2016-08-09 20:52 |显示全部楼层
闲着无聊,写个玩玩。。有点挫
#!/bin/bash
#
read -p "please input a date: " day
date -d "$day" > /dev/null
while [ $? -ne 0 ];
do
echo "输入的日期有误"
read -p "please input a date: " day
done

md=`date -d "$day a month ago" "+%m %Y" `
d=`cal $md | awk '{print $6}'  | sed '/^$/d' | sed -n '$p'`
ym=`date -d "$day a month ago" "+%Y%m"`
echo -n "当前输入日期的上一个月最后一个周五日期为:"
echo "$ym""$d"

评分

参与人数 1信誉积分 +5 收起 理由
RE_HASH + 5 赞一个!

查看全部评分

论坛徽章:
13
程序设计版块每日发帖之星
日期:2016-06-29 06:20:00每日论坛发贴之星
日期:2016-08-14 06:20:00操作系统版块每日发帖之星
日期:2016-08-14 06:20:00每日论坛发贴之星
日期:2016-08-13 06:20:00数据库技术版块每日发帖之星
日期:2016-08-13 06:20:00程序设计版块每日发帖之星
日期:2016-08-13 06:20:00IT运维版块每日发帖之星
日期:2016-08-13 06:20:00每日论坛发贴之星
日期:2016-08-12 06:20:00数据库技术版块每日发帖之星
日期:2016-08-12 06:20:00程序设计版块每日发帖之星
日期:2016-08-12 06:20:00操作系统版块每日发帖之星
日期:2016-08-12 06:20:00综合交流区版块每日发帖之星
日期:2016-08-09 06:20:00
发表于 2016-08-09 21:21 |显示全部楼层
不错不错~~

论坛徽章:
6
15-16赛季CBA联赛之新疆
日期:2016-03-22 22:34:5915-16赛季CBA联赛之山东
日期:2016-04-11 09:08:41程序设计版块每日发帖之星
日期:2016-06-28 06:20:00程序设计版块每日发帖之星
日期:2016-07-19 06:20:00每日论坛发贴之星
日期:2016-07-19 06:20:0015-16赛季CBA联赛之青岛
日期:2016-07-20 22:44:17
发表于 2016-08-09 23:18 |显示全部楼层
感谢大家的帮忙。有几位大神看成找最后一个星期五了。
需要的是最后一个1 -- 5, 非周末的工作日。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP