免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4438 | 回复: 5
打印 上一主题 下一主题

SHELL用函数求昨天前天的时间 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-07-31 16:12 |只看该作者 |倒序浏览
利用函数获取当天时间的昨天,前天时间。例如:今天是:20110731,则需要求昨天 前天。
不能用date -d 命令

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2011-07-31 16:13 |只看该作者
使用Epoch进行日期时间转换和计算的几个小函数
http://bbs.chinaunix.net/thread-1772999-1-1.html

论坛徽章:
0
3 [报告]
发表于 2011-07-31 17:17 |只看该作者
本帖最后由 jiang358519521 于 2011-07-31 17:19 编辑

year=`date +%Y`
mouth=`date +%m`
day=`date +%d`

day=`expr $day - 1`
if [ $day -eq 0 ]; then
month=`expr $month - 1`
if [ $month -eq 0 ]; then
month=12
day=31
year=`expr $year - 1`
else
case $month in
1|3|5|7|8|10|12) day=31;;
4|6|9|11) day=30;;
2)
if [ `expr $year % 4` -eq 0 ]; then
if [ `expr $year % 400` -eq 0 ]; then
day=29
elif [ `expr $year % 100` -eq 0 ]; then
day=28
else
day=29
fi
else
day=28
fi
;;
esac
fi
fi
yesterday="$year$mouth$day"
date1=`expr $yesterday - 1`

echo "$yesterday ,$date2"   #显示昨天今天时间

论坛徽章:
0
4 [报告]
发表于 2011-07-31 18:24 |只看该作者
哈哈,这个纯属没事闲的,...你干脆写个date  命令好了。。。

论坛徽章:
0
5 [报告]
发表于 2011-07-31 19:57 |只看该作者
昨天的函数,前天的类似:

  1. function get_yesterday {
  2.     yy=$(date +%Y)
  3.     mm=$(date +%m)
  4.     dd=$(date +%d-1 | bc)
  5.     if (( $dd < 1 ))
  6.     then
  7.         mm=`expr $mm - 1`
  8.         if (( $mm < 1 ))
  9.         then
  10.             mm=12
  11.             yy=`expr $yy - 1`
  12.         fi
  13.         if (( $mm < 10 ))
  14.         then
  15.             mm="0"$mm
  16.         fi
  17.         dd=$(print $(cal $mm $yy) | awk '{print $NF}' )
  18.     fi
  19.     (( $dd < 10 )) && dd="0"$dd
  20.     rq=${yy}-${mm}-${dd}
  21. }
复制代码

论坛徽章:
0
6 [报告]
发表于 2011-07-31 22:26 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP