Shell--计算两个日期的相差天数及输出这两个日期内的所有日期【工作笔记】

定义脚本
vim calculateDate.sh如下:

#!/bin/sh
startDate="20210801"
endDate="20210826"
echo "起始日期:$startDate"
echo "结束日期:$endDate"

#将日期转成秒
startDateTime=`date -d "$startDate" +%s`
endDateTime=`date -d "$endDate" +%s`

#两个日期秒数差
diff=`expr $endDateTime - $startDateTime`
#计算天数(一天24*60*60=86400秒)
diffCount=$(expr $diff/86400)
echo "两个日期相差天数(表达式):$diffCount"
echo "两个日期相差天数(整数):$[diffCount]"

echo "输出两个日期之间的所有日期:"
#利用相差的天数输出两个日期之间所有日期
for((i=0;i<=$[diffCount];i++))
do
  currentDate=`date -d "$startDate $i day" +%Y%m%d`
  echo $currentDate
done 

执行脚本

/bin/sh calculateDate.sh

执行结果

起始日期:20210801
结束日期:20210826
两个日期相差天数(表达式):2160000/86400
两个日期相差天数(整数):25
输出两个日期之间的所有日期:
20210801
20210802
20210803
20210804
20210805
20210806
20210807
20210808
20210809
20210810
20210811
20210812
20210813
20210814
20210815
20210816
20210817
20210818
20210819
20210820
20210821
20210822
20210823
20210824
20210825
20210826
  • 14
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾日三省贾斯汀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值