[Shell]date获取指定日期的后几天

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/51685280 1.
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/51685280
1. 第一种方式

先把日期转换为秒数,对这个秒数进行加减操作(加上或者减去几天的秒数),在转换为日期

 
  
  1. #! /bin/sh
  2. function nextDayOfDay2 {
  3. start=$1
  4. days=$2
  5. # 日期转换为秒数
  6. seconds=`date -d $1 +%s`
  7. echo "日期秒数 -----> "${seconds}
  8. declare -i index
  9. index=0
  10. while [ ${index} -lt ${days} ]
  11. do
  12. total_seconds=$((seconds + ${index}*86400))
  13. date=`date -d @${total_seconds} +'%Y%m%d'`
  14. echo ${index}" ------> "${date}
  15. index=${index}+1
  16. done
  17. }
  18. nextDayOfDay2 $1 $2
打印从20160629号开始的连续5天日期:
 
  
  1. xiaosi@Qunar:~/company/sh$ bash date.sh 20160629 5
  2. 日期秒数 -----> 1467129600
  3. 0 ------> 20160629
  4. 1 ------> 20160630
  5. 2 ------> 20160701
  6. 3 ------> 20160702
  7. 4 ------> 20160703

2. 第二种方式
 
  
  1. #! /bin/sh
  2. function nextDayOfDay()
  3. {
  4. start=$1
  5. days=$2
  6. startDay=`date +'%Y%m%d' -d ${start}`
  7. echo "日期 -----> "${startDay}
  8. declare -i index
  9. index=0
  10. while [ ${index} -lt ${days} ]
  11. do
  12. date=`date -d "${startDay} ${index} days" +"%Y%m%d"`
  13. echo ${index}" ------> "${date}
  14. index=${index}+1
  15. done
  16. }
  17. nextDayOfDay $1 $2
打印从20160629号开始的连续5天日期:
 
  
  1. xiaosi@Qunar:~/company/sh$ bash date.sh 20160629 5
  2. 日期 -----> 20160629
  3. 0 ------> 20160629
  4. 1 ------> 20160630
  5. 2 ------> 20160701
  6. 3 ------> 20160702
  7. 4 ------> 20160703

目录
相关文章
|
14小时前
|
算法 Unix Shell
【Shell 命令集合 系统管理 】Linux 显示或设置系统时间和日期 date命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示或设置系统时间和日期 date命令 使用指南
41 0
|
14小时前
|
网络协议 安全 Shell
【Shell 命令集合 系统设置 】Linux 从远程时间服务器获取当前日期和时间 rdate命令 使用指南
【Shell 命令集合 系统设置 】Linux 从远程时间服务器获取当前日期和时间 rdate命令 使用指南
46 0
|
10月前
|
运维 Shell C语言
shell脚本介绍、结构和执行、变量及date命令用法
shell脚本介绍、结构和执行、变量及date命令用法
145 2
|
11月前
|
应用服务中间件 Shell nginx
shell获取指定日期的nginx日志
shell获取指定日期的nginx日志
119 0
|
12月前
|
存储 应用服务中间件 Shell
shell+定时任务+nginx信号管理实现日志按日期切割存储
shell+定时任务+nginx信号管理实现日志按日期切割存储
|
SQL Shell Linux
LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算
很高兴能开始是新的知识点,我在使用sh 运行hive脚本以后才发现不知不觉的时候我已经开始使用shell了。。。
112 0
LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算
|
SQL Shell Linux
LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算
很高兴能开始是新的知识点,我在使用sh 运行hive脚本以后才发现不知不觉的时候我已经开始使用shell了。。。
70 0
LInux shell 编写记录-日期9月判断中遇到shell默认八进制计算
|
Shell Linux
Linux下Shell日期的格式,你知道几种?
Linux下Shell日期的格式,你知道几种?
93 0
|
前端开发 Shell
React Native:Debugger and device times have drifted by more than 60s. Please correct this by running adb shell "date `date +%m%d%H%S`"
问题 Debugger and device times have drifted by more than 60s. Please correct this by running adb shell "date `date +%m%d%H%M%T.
3882 0
|
Linux Shell
Linux下Shell日期的格式,你知道几种?
不管是哪种语言,日期/时间都是一个非常重要的值。比如我们保存日志的时候,往往是某个前缀再加上当前时间,这样日志文件名称就可以做到唯一。 在Shell环境里,我们获取时间的命令是date,但date出来的时间日期格式、内容可能不是我们所想要的,所以我们可能需要对它进行一些格式化输出。
1738 0