北京小辉的博客

学习是一种享受,也是一种痛苦,更是一种回忆!!!

Linux:shell完美获取上月,本月,下月年月

#!/bin/sh
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

#需求:获取上月年月,本月年月,下月年月
#      2016-06       2016-07   2016-08
#
#坑01 
#2016年当month为01的时候,上年月份为2015-12
#2016年当month为12的时候,下年月份为2017-01
#2016年当month为其余月份时候,月份加1或者减一
#
#坑02  
# 1、使用date时候,如果系统时间为2016-05-31
#    `date -d "1 month ago" +%Y-%m` 为2016-05
# 2、使用date时候,如果系统时间为2016-05-31
#    `date -d "1 month " +%Y-%m` 为2016-07
#


year=`date -d "0 month ago" +%Y`

month=`date -d "0 month ago" +%m`

nowdate=`date -d "0 month ago" +%Y-%m` 

one='01'
if [ $month == $one ]
then
echo "当month为01的时候,上年月份为2015-12"
LastYear=$[$year-1]
Lastdate=$LastYear-12
Nextdate=$year-0$[$month+1] 
echo $Lastdate
echo $nowdate
echo $Nextdate
fi

twelve='12'
if [ $month == $twelve ]
then
echo "当month为12的时候,下年月份为2017-01"
NextYear=$[$year+1]
Lastdate=$year-$[$month-1]
Nextdate=$NextYear-01
echo $Lastdate
echo $nowdate
echo $Nextdate
fi


if [ $month -ne $twelve ]
then 
  if [ $month -ne $one ]
  then
      ten=10
      if [ $[$month-1] -lt $ten ]
      then
      monthmin=0$[$month-1]
      else
      monthmin=$[$month-1 ]
      fi

      if [ $[$month+1] -lt $ten ]
      then
      monthadd=0$[$month+1]
      else
      monthadd=$[$month+1 ]
      fi

      echo $year-$monthmin
      echo `date -d "0 month ago" +%Y-%m`
      echo $year-$monthadd
  fi
fi

如果您喜欢我写的博文,读后觉得收获很大,不妨小额赞助我一下,让我有动力继续写出高质量的博文,感谢您的赞赏!微信

这里写图片描述

阅读更多
版权声明:本文为博主原创文章,出处为 http://blog.csdn.net/silentwolfyh https://blog.csdn.net/silentwolfyh/article/details/52047447
文章标签: shell
个人分类: 【工 具】Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭