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

举报
吾日三省贾斯汀 发表于 2021/09/10 00:04:09 2021/09/10
【摘要】 定义脚本 vim calculateDate.sh如下: #!/bin/sh startDate="20210801" endDate="20210826" echo "起始日期:$startDate"...

定义脚本
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 


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

执行脚本

/bin/sh calculateDate.sh

  
 
  • 1

执行结果

起始日期: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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

文章来源: blog.csdn.net,作者:吾日三省贾斯汀,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/JustinQin/article/details/119928734

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。