当前位置 博文首页 > JustinQin:Shell--计算两个日期的相差天数及输出这两个日期内的

    JustinQin:Shell--计算两个日期的相差天数及输出这两个日期内的

    作者:[db:作者] 时间:2021-09-12 08:57

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