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

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值