shell 日期循环

#!/bin/sh
if [ $# == 2 ]; then
    datebeg=$1
    dateend=$2
else
    echo "请输入开始时间和结束日期,格式为2017-04-04"
    exit 1
fi

beg_s=`date -d "$datebeg" +%s`
end_s=`date -d "$dateend" +%s`

echo "处理时间范围:$beg_s 至 $end_s"

while [ "$beg_s" -le "$end_s" ];do
    day=`date -d @$beg_s +"%Y-%m-%d"`;
    echo "当前日期:$day"
    beg_s=$((beg_s+86400));
done

echo "日期全部处理完成"
 

日期格式字符串列表

%H 小时,24小时制(00~23) 
%I 小时,12小时制(01~12) 
%k 小时,24小时制(0~23) 
%l 小时,12小时制(1~12) 
%M 分钟(00~59) 
%p 显示出AM或PM 
%r 显示时间,12小时制(hh:mm:ss %p) 
%s 从1970年1月1日00:00:00到目前经历的秒数 
%S 显示秒(00~59) 
%T 显示时间,24小时制(hh:mm:ss) 
%X 显示时间的格式(%H:%M:%S) 
%Z 显示时区,日期域(CST) 
%a 星期的简称(Sun~Sat) 
%A 星期的全称(Sunday~Saturday) 
%h,%b 月的简称(Jan~Dec) 
%B 月的全称(January~December) 
%c 日期和时间(Tue Nov 20 14:12:58 2012)(不加参数时的效果) 
%d 一个月的第几天(01~31) 
%x,%D 日期(mm/dd/yy) 
%j 一年的第几天(001~366) 
%m 月份(01~12) 
%w 一个星期的第几天(0代表星期天) 
%W 一年的第几个星期(00~53,星期一为第一天) 
%y 年的最后两个数字(1999则是99)
  • 使用当前时间,可以忽略选项,指明格式化参数.如date +"%Y-%m-%d"
  • 使用其余时间,需要-d参数,后面需要再跟字符串表达时间偏移值

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值