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. SQL中group by后面的having中不能使用别名

    如下图中,SQL中需要对group by的结果使用having进行过滤,不能使用select中定义的别名,需要使用查询字段的原始名.否则会报错,列明未定义. 下图未错误演示: 修改后,正确的SQL语句 ...

  2. ElasticSearch——分词

    前言: 最近在使用elasticSearch中发现有些数据查不出来,于是研究了一下,发现是分词导致的,现梳理并总结一下. ElasticSearch 5.0以后,string类型有重大变更,移除了st ...

  3. AC自动机--summer-work之我连模板题都做不出

    这章对现在的我来说有点难,要是不写点东西,三天后怕是就一无所有了. 但写这个没有营养的blog的目的真的不是做题或提升,只是学习学习代码和理解一些概念. 现在对AC自动机的理解还十分浅薄,这里先贴上目 ...

  4. bash-1 初始化CentOS系统的初始化脚本

    初始化CentOS系统的初始化脚本 #!/bin/bash # #******************************************************************* ...

  5. React Hook 学习

    1.官方文档 https://react.docschina.org/docs/hooks-intro.html 2.阮一峰 reactHook http://www.ruanyifeng.com/b ...

  6. C学习笔记-多源文件的编译

    多源文件的意义 为了精简代码和更好的维护代码,往往需要将一些功能实现的代码与主函数代码分开来 在使用的时候再主函数中调用 多源文件的使用 假设现有my.c和main.c两个源代码文件,现在要再main ...

  7. SpringCloud学习(八)消息总线(Spring Cloud Bus)(Finchley版本)

    Spring Cloud Bus 将分布式的节点用轻量的消息代理连接起来.它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控.本文要讲述的是用Spring Cloud Bus实现通知微服务 ...

  8. tinymce 中我输入的内容 清空问题

    <tinymce v-model="formItem.hDtContent" ref="content" @accessory="handlea ...

  9. 7.编写mapreduce案例

    在写一个mapreduce类之前先添加依赖包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...

  10. 【转帖】知乎管理华为鸿蒙OS的介绍2

    作者:虎游链接:https://www.zhihu.com/question/328382980/answer/784629132来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...