免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 12912 | 回复: 9

[日期时间] linux shell如何获取当月的第一天和最后一天 [复制链接]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2015-12-09 06:20:00
发表于 2017-02-08 10:44 |显示全部楼层

那位大神知道,linux shell如何获取当月的第一天和最后一天
谢谢

论坛徽章:
1
15-16赛季CBA联赛之江苏
日期:2016-10-26 16:19:04
发表于 2017-02-08 11:02 |显示全部楼层
have a try  cal

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2015-12-09 06:20:00
发表于 2017-02-08 11:31 |显示全部楼层

大神,给个例子吧谢谢

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2017-02-08 13:44 |显示全部楼层
本帖最后由 moperyblue 于 2017-02-08 17:10 编辑
  1. date +"%Y%m01" #当月第一天
  2. date -d"$(date -d"1 month" +"%Y%m01") -1 day" +"%Y%m%d" #当月最后一天
  3. date +"%Y%m$(cal|sed 'N;${s/.* //;P;d};D')" #当月最后一天
复制代码

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2015-12-09 06:20:00
发表于 2017-02-08 15:28 |显示全部楼层

多谢,大神!!!!!!!!我去试试

论坛徽章:
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
发表于 2017-02-08 16:29 |显示全部楼层
  1. cal|perl -0nle 'print+(split)[-1]'
复制代码

论坛徽章:
130
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2017-02-08 16:34 |显示全部楼层
本帖最后由 jason680 于 2017-02-08 16:55 编辑

回复 1# xinmencuoxue


$ date "+%F" | awk -F- '{Y=$1;M=$2;leap=!(Y%400)-!(Y%100)+!(Y%4);D=30+(M==2)*(leap-2)+(M%2)+(M>=8)*(-(M%2)*2-1);print M"/01",M"/"D}'
02/01 02/28

论坛徽章:
28
15-16赛季CBA联赛之八一
日期:2016-02-22 19:10:4215-16赛季CBA联赛之深圳
日期:2016-12-01 10:34:0415-16赛季CBA联赛之新疆
日期:2016-12-07 10:24:2915-16赛季CBA联赛之同曦
日期:2016-12-15 12:06:43CU十四周年纪念徽章
日期:2016-12-18 13:03:4415-16赛季CBA联赛之吉林
日期:2017-01-03 15:52:2515-16赛季CBA联赛之辽宁
日期:2017-01-04 14:58:2415-16赛季CBA联赛之辽宁
日期:2017-01-15 09:42:512016科比退役纪念章
日期:2017-02-06 17:21:50黑曼巴
日期:2017-02-10 15:46:1215-16赛季CBA联赛之上海
日期:2017-03-18 10:14:5415-16赛季CBA联赛之青岛
日期:2017-03-18 22:00:44
发表于 2017-02-08 16:53 |显示全部楼层

  1. cal|awk 'NF{s=$NF}END{c="date +%Y%m";c|getline x;print x"01",x s;close(c)}'
复制代码

论坛徽章:
0
发表于 2017-02-09 15:39 |显示全部楼层
本帖最后由 本友会机友会摄友会 于 2017-02-09 16:15 编辑

嗯,应邀发powershell版: 部分命令网上摘抄

# 获取最小的日期(通常用于做日期计算)
Get-Date 0


# 获取当前日期
Get-Date


# 获取当前日期的年
(Get-Date).Year


# 获取当前日期的月
(Get-Date).Month


# 获取当前日期的日
(Get-Date).Day


# 获取从今年起的天数
(Get-Date).DayOfYear


# 获取星期
(Get-Date).DayOfWeek


# 今年的第一天
(Get-Date 0).AddYears((Get-Date).Year - 1)


# 今年的最后一天
(Get-Date 0).AddYears((Get-Date).Year).AddDays(-1)


# 这个月的第一天
(Get-Date 0).AddYears((Get-Date).Year - 1).AddMonths((Get-Date).Month - 1)
get-date   -uformat   "%Y%m01"  也行

# 这个月的最后一天
(Get-Date 0).AddYears((Get-Date).Year - 1).AddMonths((Get-Date).Month).AddDays(-1)
返回 2017年2月28日 0:00:00
再加上-format 或-uformat 即可选择部分。

$本年 = (get-date).year
$本月 = (get-date).Month.tostring("d2")
$下月今日_减本月今日等于_本月有几天 = ((Get-Date).addmonths(1) - (Get-Date)).Days
'' + $本年 + $本月 + $下月今日_减本月今日等于_本月有几天


# 这个星期的第一天
(Get-Date 0).AddYears((Get-Date).Year - 1).AddDays(((Get-Date -uformat %V) - 1) * 7)


# 这个星期的最后一天
(Get-Date 0).AddYears((Get-Date).Year - 1).AddDays([int](Get-Date -uformat %V) * 7).AddDays(-1)

论坛徽章:
21
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:23
发表于 2017-02-13 17:53 |显示全部楼层
[root@ads52 tmp]# echo `cal` | awk '{print $NF,$1,$2}'
28 February 2017
[root@ads52 tmp]# echo `cal` | awk '{print '1',$1,$2}'
1 February 2017
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP