利用shell获取指定日期前N天的日期
一、创建测试文件test.sh
#!/bin/sh . /etc/profile # 参数: # args[0] ,数据日期,日期格式yyyy-MM-dd # 取30天以前的日期 function get_date_30daysbefore() { sec=`date -d $1 +%s` sec_30daysbefore=$((sec - 86400*30)) days_before=`date -d @$sec_30daysbefore +%F` echo $days_before } if [ $# == 1 ]; then today=$1 dates_30=`get_date_30daysbefore $1` else today=`date -d -1days '+%Y-%m-%d'` dates_30=`date -d -30days '+%Y-%m-%d'` fi echo $today echo $dates_30
二、无参运行
## 不带参数,从当前时间开始算 $ ./test.sh 2016-10-28 2016-09-29
三、传参运行
$ ./test.sh 2015-10-29 2015-10-29 2015-09-29
总结
以上就是利用shell获取指定日期前N天日期的全部内容,希望本文的内容对大家的学习或者工作能有所帮助,如果有疑问大家可以留言交流。
相关推荐
-
判断输入的日期是否正确的shell脚本
今儿个讲得是判断输入的日期是否正确,有利用到我们之前03这个例子中的函数 下面是代码 #!/bin/sh # valid-date -- Validates a date, taking into account leap year rules. exceedsDaysInMonth() { case $(echo $1|tr '[:upper:]' '[:lower:]') in jan* ) days=31 ;; feb* ) days=28 ;; mar* ) days=31 ;; apr
-
一个shell小案例(创建日期目录)
今天看到一个shell题目,正好拿来练练手 需要在多个目录中 (如:beijing shanghai tianjin guangzhou 等等) 创建子目录(以年份命名),然后进入子目录,新建目录并以当天的日期命名. 最终的效果是这样的: 复制代码 代码如下: china/guangdong/ china/guangdong/shenzhen/2010/1206 china/guangdong/shenzhen/2010/1207 china/guangdong/shenzhen/baoan/2
-
perl与shell获取昨天、明天或多天前的日期的代码
一.首先说下perl如何获取 复制代码 代码如下: #!/usr/bin/perl -wuse POSIX qw(strftime);my $day = strftime("%Y%m%d", localtime(time - 24*3600));#获取昨天的日期 二.在Linux中对man date -d 参数说的比拟笼统,以下示例进一步解释: # -d, --date=STRING display time described by STRING, not `now'[root@Gm
-
一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用.所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行). 如同其他语言一样,通过我们使用任意一种文字编辑器,比如nedit.kedit.emacs.vi 等来编写我们的shell程序. 程序必须以下面的行开始(必须方在文件的第一行): #!/b
-
linux shell实现转换输入日期的格式
对于用户输入日期的合法性检验,是个很重要的问题,这个例子是简单得取得用户输入的日期,并转换为相应的格式,但不完美,原因请看后文. #!/bin/sh # normdate -- Normalizes month field in date specification # to three letters, first letter capitalized. A helper # function for Script #7, valid-date. Exits w/ zero if no err
-
获取两个日期间隔时间的shell脚本代码
复制代码 代码如下: #!/bin/sh# 获取所在季度的第一天,到昨天的日期间隔# link:www.jb51.net# date:2013/2/28 day=`date -d "1 days ago " "+%Y%m%d"`;year=`expr substr ${day} 1 4`;month=`expr substr ${day} 5 2`;s_date=$year"0101"if [ "$month" == &quo
-
Shell脚本遍历一个日期范围实例
如果跟shell脚本打交道,遍历一个时间范围是很常见的事情,那么今天就跟大家分享一下: 复制代码 代码如下: #!/usr/bin/env bash date1="$1" date2="$2" echo "date1: $date1" echo "date2: $date2" tempdate=`date -d "-0 day $date1" +%F` enddate=`date -d "-0 d
-
PowerShell中使用Get-Date获取日期时间并格式化输出的例子
在PowerShell中有一个Get-Date的cmdlet,使用它可以直接返回当前的日期和时间.使用-Format参数可以返回当前的年.月.日.时.分.秒等. Get-Date的直接使用 在PowerShell中直接调用Get-Date,可以返回当前的日期和时间,包括年.月.日.时.分.秒.举例如下: 复制代码 代码如下: PS C:\Users\zhanghong> Get-Date 2013年9月9日 22:26:56 Write-Host中使用Get-Date 注意:在Write-Hos
-
PowerShell中iso8601格式日期和DateTime对象互转实例
一.iso8601格式转换成DateTime对象 这里主要用到datetime的静态方法static datetime ParseExact(string s, string format, System.IFormatProvider provider) 复制代码 代码如下: $dateTimeStr = '20141231T23:59:59' $format = 'yyyyMMddTHH:mm:ss' $formatProvider = [Globalization.CultureInfo]
-
linux shell中 if else以及大于、小于、等于逻辑表达式介绍
比如比较字符串.判断文件是否存在及是否可读等,通常用"[]"来表示条件测试. 注意:这里的空格很重要.要确保方括号的空格.笔者就曾因为空格缺少或位置不对,而浪费好多宝贵的时间. if ....; then....elif ....; then....else....fi[ -f "somefile" ] :判断是否是一个文件[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限[ -n "$var" ]
随机推荐
- Lua基础教程之表(Table)学习笔记
- php+mysql注入页面实现
- centos7下NFS使用与配置的步骤
- 详解SpringBoot中Session超时原理说明
- iis 服务器应用程序不可用的解决方法
- PHP is_subclass_of函数的一个BUG和解决方法
- 浅谈Java编程ToString()方法重写的意义
- 微信公众号开发 实现点击返回按钮就返回到聊天界面
- 通过PHP自带的服务器来查看正则匹配结果的方法
- Linux下模拟实现进度条实例详解
- Python入门_浅谈逻辑判断与运算符
- JQuery实现样式设置、追加、移除与切换的方法
- jQuery弹簧插件编写基础之“又见弹窗”
- jquery 实现表单验证功能代码(简洁)
- 谈一谈js中的执行环境及作用域
- Java实现的汉语拼音工具类完整实例
- Android编程使用WebView实现文件下载功能的两种方法
- spring cloud consul注册的服务报错critical的解决
- python实现可视化动态CPU性能监控
- Java Swing组件定制CheckBox示例