1、下载安装busybox:

# wget http://busybox.net/downloads/busybox-1.29.3.tar.bz2
# tar -jxvf busybox-1.29..tar.bz2
# cd busybox-1.29.
# make defconfig //如果对根文件系统的大小不是很苛求,可以直接使用busybox的默认配置
# make
# make install 构建date链接
# ln -sf ./busybox ./date

busybox date参数详解

[busybox-1.29.]# ./date --help
BusyBox v1.29.3 (-- :: CST) multi-call binary. Usage: date [OPTIONS] [+FMT] [TIME] Display time (using +FMT), or set time [-s,--set] TIME Set time to TIME
-u,--utc Work in UTC (don't convert to local time)
-R,--rfc- Output RFC- compliant date string
-I[SPEC] Output ISO- compliant date string
SPEC='date' (default) for date only,
'hours', 'minutes', or 'seconds' for date and
time to the indicated precision
-r,--reference FILE Display last modification time of FILE
-d,--date TIME Display TIME, not 'now'
-D FMT Use FMT for -d TIME conversion Recognized TIME formats:
hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]
'date TIME' form accepts MMDDhhmm[[YY]YY][.ss] instead

Linux系统中的date一般可以直接进行日期的相减,

例如: centos7系统

date 获取前一天的时间: date -d -1day     或者   date -d '1 day ago'

date 获取前一个月的时间: date -d '1 month ago'

date 获取前一年的时间: date -d '1 year ago'

而busybox date则不可以直接获取前一天的时间,,需要时间数字相减的方法来实现获取前一天的时间

例如: busybox date 获取前一天的时间:

考虑到当前时间是年度第一天1月1日的情况,代码如下:

year=`date +%Y`   // 获取当前时间的年份
month=`date +%m` // 获取当前时间的月份
day=`date +%d` // 获取当前时间的日期 if [[ "$day" == "" ]];then // 如果当前时间是1号 ,则考虑一下月份问题
if [[ "$month" == "" ]];then // 如果当前时间是1月1号,,获取的前一天则是去年的最后一天 ,所以年份需要减一,月份和日期则是12月31日
year=`expr $year - `
yesterday="${year}-12-31"
elif [[ "$month" == "" ]];then // 如果当前时间是3月1号,获取的前一天则是2月的最后一天,2月又分28天和29天,,所以需要和4取余,
year_type=`expr ${year} % `
if [[ "$year_type" == "" ]];then // 与4取余为0则为闰年,这一年的2月最后一天是29号,,取余不为0则为平年,2月的最后一天是28号
day=""
else
day=""
fi
yesterday="${year}-02-${day}"
// 1,3,5,7,8,10,12月均是31天
elif [[ "$month" == "" || "$month" == "" || "$month" == "" || "$month" == "" || "$month" == "" || "$month" == "" ]];then
month=`expr ${month} - `
yesterday="${year}-${month}-31"
elif [[ "$month" == "" ||"$month" == "" || "$month" == "" || "$month" == "" ]];then
month=`expr ${month} - `
yesterday="${year}-${month}-30" fi
else
yesterday=${year}-${month}-`expr ${day} - `
fi echo $yesterday

busybox date 时间的加减的更多相关文章

  1. java中可以对时间进行加减处理,有时候不用在sql语句中处理

    String ssny = (String) pd.get("ssny");   SimpleDateFormat simpleDateFormat=new SimpleDateF ...

  2. 【python】详解time模块功能asctime、localtime、mktime、sleep、strptime、strftime、time等函数以及时间的加减运算

    在Python中,与时间处理相关的模块有:time.datetime以及calendar.学会计算时间,对程序的调优非常重要,可以在程序中狂打时间戳,来具体判断程序中哪一块耗时最多,从而找到程序调优的 ...

  3. linux的date命令使用指定时间的加减方法与异常

    在一般网页里,date命令减时间方法为: date -d '-100 days' 我的需求是,在指定时间上减8小时.按一般理解来看,命令写成如下样子(有异常错误的写法): date -d " ...

  4. MySQL 时间函数加减计算

    一.MySQL 获得当前日期时间 函数 1.1 获得当前日期 + 时间(date + time) 函数:now() mysql> select now();+———————+| now() |+ ...

  5. Java对日期Date类进行加减运算,年份加减,月份加减

      import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Da ...

  6. 【转】Java对日期Date类进行加减运算,年份加减,月份加减

    import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date; public class Date ...

  7. xxxx-xx-xx的时间的加减

    <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...

  8. Oracle计算时间函数(对时间的加减numtodsinterval、numtoyminterval) (转)

    原文来自:http://blog.itpub.net/756652/viewspace-697256/ 11g interval分区,按天分区,需要用到函数numtodsinterval.   cre ...

  9. Oracle 时间处理(加减)

    一. 类似SQL SERVER中DateAdd select sysdate,add_months(sysdate,12) from dual;        --加1年 select sysdate ...

随机推荐

  1. nginx的负载均衡和反向代理

    本文介绍一些负载均衡和反向代理的一些基本概念,然后介绍如何基于nginx实现,包括两种安装nginx的方法:yum安装和源码安装,以及ngix该如何配置等. 什么是负载均衡? 概念 负载均衡是高可用网 ...

  2. mysql查看系统参数

    show global variables like ‘innodb_buffer_pool_size’: 查看buffer相关参数 show global variables like 'buffe ...

  3. 安装gnocchi

    在控制节点上执行 #!/bin/bash MYSQL_ROOT_PASSWD='m4r!adbOP' GNOCCHI_PASSWD='gnocchi1234!' CEILOMETER_PASSWD=' ...

  4. Java学习笔记-反射机制

    Java反射机制实在运行状态时,对于任意一个类,都能够知道这个类的属性和方法,对于任意一个对象,都能够调用他的任意一个属性和方法 获取Class对象的三种方式 Object类中的getClass()方 ...

  5. Java学习笔记-IO

    IO(Input Output)流,用来处理设备之间的数据传输 IO IO概述 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流 流按流向 ...

  6. JAVA -----------交互式程序

    2.6交互式程序 如果程序能在执行期间交互地从用户输入中读取数据,就可使程序每执行一次时计算出新结果,并且新结果取决于输入数据.这样的程序才具有实用性. 2.6.1 Scanner类 Scanner类 ...

  7. 零零散散的python笔记 2

    python2和python3的兼容性方面 工具 2to3 python3中自带的工具,可以检查python2升级到python3的diff: 2to3 x.py 2to3 -w x.py     # ...

  8. ES6中Set和Map

    1.Set 实例的创建 Set实例它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数用来生成Set数据结构. Set 函数可以接受一个数组(或者具有 iterable 接口 ...

  9. 2019-07-31 C#基础知识学习

    什么是进程:进程是系统中正在运行的一个程序,程序一旦运行就是进程. 什么是线程:线程是进程的一个实体,是进程的一条执行路径. 进程和线程的区别体现在以下几个方面: 1.地址空间和其他资源(如打开文件) ...

  10. dev控件学习笔记之----CxGrid2

    一.cxgrid 表格自适应列宽和增加注脚注和 for i := 0 to ado_lxr_cx.FieldCount - 1 do    begin      //如果是数字,则注脚求合      ...