shell 实现日期按自定义步长遍历

实现思路: 输入时间转时间戳,按固定步长更新时间戳,然后在转为时间展示

 

复制代码
#!/bin/bash

if [ -z $1 ]; then
    echo 'plz input start time, example: 2025-01-01'
    exit 1
fi

start_timestamp=`date -d "$1" +%s`
if [ -z $start_timestamp ]; then
    echo "invalid start time, input: $1"
    exit 1
fi

end_time="$2"
if [ -z $2 ]; then
    end_time=`date +%F`
fi
end_timestamp=`date -d "$end_time" +%s`

dur=86400 # 步长 1 天, 可通过修改这里实现自定义步长
st=$start_timestamp
et=$end_timestamp
while [ $st -le $et ];
do
    ett=$((st+dur))
    stm=`date -d@${st} +%F`
    etm=`date -d@${ett} +%F`

    # TODO: 填充代码
    echo -e "# \033[31mstart_time:$stm  end_time:$etm \033[0m"

    st=$ett
done
复制代码

 

执行效果

 

posted @   feiquan  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
历史上的今天:
2018-03-04 Bresenham算法的实现思路
2018-03-04 计算机图形学(第2版 于万波 于硕 编著)第45页的Bresenham算法有错误
如果是此文是转载文章,本人会附上转载链接,此篇文章的版权归原创作者所属,如果侵权请与我联系,我会删除此文。

若没有标明转载链接,此篇文章属于本人的原创文章,其版权所属:
作者:feiquan
出处:http://www.cnblogs.com/feiquan/
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
大家写文都不容易,请尊重劳动成果~ 这里谢谢大家啦(*/ω\*)
点击右上角即可分享
微信分享提示