您的位置:首页 > 运维架构 > Shell

shell 计算两个日期之间的天数

2017-11-21 14:22 393 查看
time1=$((($(date +%s -d '20120103') - $(date +%s -d '20120101'))/86400));

将日期转换为秒,然后除以一天的秒数,获得日期。

计算当天到指定日期的天数

time1=$((($(date +%s ) - $(date +%s -d '20120101'))/86400));

备注:

shell 单括号运算符号:

a=$(date);

等同于:a=`date`;

双括号运算符:

a=$((1+2));

echo $a;

等同于:

a=`expr 1 + 2`

date是Linux系统里自带的一个系统命令,用来显示当前的系统时间,不过默认显示的结果里包括很多信息,特别是做为文件名输出时,不是很方便

好在date命令里包含格式化输出的选项

[python] view plain copy

[root@root ~]# date "+%Y-%m-%d"  

2013-02-19  

[root@root ~]# date "+%H:%M:%S"  

13:13:59  

[root@root ~]# date "+%Y-%m-%d %H:%M:%S"  

2013-02-19 13:14:19  

[root@root ~]# date "+%Y_%m_%d %H:%M:%S"    

2013_02_19 13:14:58  

[root@root ~]# date -d today   

Tue Feb 19 13:10:38 CST 2013  

[root@root ~]# date -d now  

Tue Feb 19 13:10:43 CST 2013  

[root@root ~]# date -d tomorrow  

Wed Feb 20 13:11:06 CST 2013  

[root@root ~]# date -d yesterday  

Mon Feb 18 13:11:58 CST 2013  

日期加减计算

比如今日是2012-04-22

$ date -d "+1 day" +%Y-%m-%d

2012-04-23

 

$ date -d "-1 day" +%Y-%m-%d

2012-04-21

 

$ date -d "2012-04-10 -1 day " +%Y-%m-%d

2012-04-09

 

$ date -d "2012-04-10 +1 day " +%Y-%m-%d

2012-04-11

 

$ date -d "-1 week " +%Y-%m-%d

2012-04-15

 

$ date -d "+1 week " +%Y-%m-%d

2012-04-29

 

$ date -d "+1 month " +%Y-%m-%d

2012-05-22

 

$ date -d "-1 month " +%Y-%m-%d

2012-03-22

 

$ date -d "-1 year " +%Y-%m-%d

2011-04-22

 

$ date -d "+1 year " +%Y-%m-%d

2013-04-22
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: