shell脚本根据指定日期 得到月初,月末,季初,季末,年初,年末,周开始,周结束,旬初,旬末日期,报表日期

本文详细介绍了如何使用Shell脚本进行日期的加减运算,包括获取指定日期的月初、月末、年初、年末、周初、周末、季初、季末、旬初和旬末的具体日期。通过截取和计算TX_DATE变量,提供了实用的日期处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义日期变量为

TX_DATE=20200707

首先日期加减的基础常识

#日期加1天
date -d "$TX_DATE 1 days" +%Y%m%d

#日期减1天
date -d "$TX_DATE -1 days" +%Y%m%d

#日期加一个月
date -d "$TX_DATE next month" +%Y%m%d

#日期加一年
date -d "$TX_DATE next year" +%Y%m%d

接下来根据指定日期得到 月初 月末 季初 季末 年初 年末 周开始 周结束 旬初 旬末日期

报表中常用到

#月初

m_s_date=${TX_DATE:0:6}01     #${TX_DATE:0:6}是截取TX_DATE变量从0字符开始6位

#月末 

m_e_date=`date -d "$TX_DATE next month" +%Y%m%d`

m_e_date=`date -d "${m_e_date:0:6}01 -1 day" +%Y%m%d`

#年初

y_s_date=${TX_DATE:0:4}0101

#年末

y_e_date=`date -d "$TX_DATE next year" +%Y%m%d`

y_e_date=`date -d "${y_e_date:0:4}0101 -1 day" +%Y%m%d`

#周初

n_week=`date -d "$TX_DATE" +%w`

if [ $n_week -eq 0 ];then

n_week=7

fi

w_s_date=`date -d "$TX_DATE -$((n_week-1)) days" +%Y%m%d`

#周末

w_e_date=`date -d "$TX_DATE $((7-n_week)) days" +%Y%m%d`

#季初
#季末

mm=${TX_DATE:4:2}

if (( mm >= 1 )) && (( mm <= 3 )) ;then

q_s_date=${TX_DATE:0:4}0101

q_e_date=${TX_DATE:0:4}0331

elif (( mm >= 4 )) && (( mm <= 6 )) ;then

q_s_date=${TX_DATE:0:4}0401

q_e_date=${TX_DATE:0:4}0630

elif (( mm >= 7 )) && (( mm <= 9 )) ;then

q_s_date=${TX_DATE:0:4}0701

q_e_date=${TX_DATE:0:4}0930

else

q_s_date=${TX_DATE:0:4}0701

q_e_date=`date -d "$TX_DATE next month" +%Y%m%d`

q_e_date=`date -d "${q_e_date:0:6}01 -1 day" +%Y%m%d`

fi

#旬初
#旬末

dd==${TX_DATE:6:2}

if (( dd >= 1 )) && (( d <= 10 )) ;then

tenday_s_date=${TX_DATE:0:6}01

tenday_e_date=${TX_DATE:0:6}10

elif (( d >= 11 )) && (( dd <= 20 )) ;then

tenday_s_date=${TX_DATE:0:6}11

tenday_e_date=${TX_DATE:0:6}20

else

tenday_s_date=${TX_DATE:0:6}21

tenday_e_date=`date -d "$TX_DATE next month" +%Y%m%d`

tenday_e_date=`date -d "${tenday_e_date:0:6}01 -1 day" +%Y%m%d`

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值