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

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

猜你喜欢

转载自blog.csdn.net/mydriverc2/article/details/78592107
今日推荐