博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell中获取当前日期,下月1日,上月底,上月同期日期,比较两个日期大小
阅读量:2180 次
发布时间:2019-05-01

本文共 1085 字,大约阅读时间需要 3 分钟。

在实际开发过程中会用到一些特定时间,请注意其中下月1日和上月同期日期无法用shell命令直接获取,需做判断

1.获取系统当前时间today=`date +%Y%m%d`2.本月1日firstday=`date -d "${today}" +%Y%m01`3.本月月份month=`date -d "${today}" +%m`4.上月月底l_lastday=`date -d "${firstday} last day" +%Y%m%d`5.上月月份l_month=`date -d "${l_lastday}" +%Y%m`l_month2=`date -d "${l_lastday}" +%Y/%m`6.下月1日不能直接用n_month=`date -d "${today} +1 month" +%Y%m01`当today=20190131时,用此公式n_month=20190301需做判断n_month1=`date -d "$today +1 month" +%m`n_month2=$[ $month + 1 ]if [ $n_month2 -ge $n_month2 ]thenn_month=`date -d "${today} +1 month" +%Y%m01`else if [ $n_month2 -lt $n_month2 ]thenn_month=`date -d "${today} +20 day" +%Y%m01`fi7.本月月底MonthEnd=`date -d "$n_month -1 day" +%Y%m%d`8.上月同期日期last_month_date不可以直接用l_month_date=`date -d "$today -1 month" +%Y%m%d`特殊情况时,不能取到正确的值,如today=20190331时,l_month_date=20190303,因为3月有31天,2月只用28天,当today=20190331时,对应的上个月同期日期应该取2月份的最后一天。(在实际应用中计算绩效时上月同期指标值会用到)需用上月月底l_lastday和l_month_date做比较判断:先把日期转换成时间戳格式,再进行比较:t1=`date -d "$l_lastday" +%s`t2=`date -d "$l_month_date" +%s`if [ $t1 -ge $t2]thenlast_month_date=$l_month_date elselast_month_date=$l_lastdayfi

转载地址:http://zkjkb.baihongyu.com/

你可能感兴趣的文章
Cisco Packet Tracer教程
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>
phpStudy安装yaf扩展
查看>>
密码 加密 加盐 常用操作记录
查看>>
TP 分页后,调用指定页。
查看>>
Oracle数据库中的(+)连接
查看>>
java-oracle中几十个实用的PL/SQL
查看>>
PLSQL常用方法汇总
查看>>
几个基本的 Sql Plus 命令 和 例子
查看>>
PLSQL单行函数和组函数详解
查看>>
Oracle PL/SQL语言初级教程之异常处理
查看>>
Oracle PL/SQL语言初级教程之游标
查看>>
Oracle PL/SQL语言初级教程之操作和控制语言
查看>>
Oracle PL/SQL语言初级教程之过程和函数
查看>>
Oracle PL/SQL语言初级教程之表和视图
查看>>
Oracle PL/SQL语言初级教程之完整性约束
查看>>
PL/SQL学习笔记
查看>>
如何分析SQL语句
查看>>