## 以星期一为示例
# 星期一
date -dmonday +%Y%m%d
 
# 上周一
date -dlast-monday +%Y%m%d
 
# 下周一
date -dnext-monday +%Y%m%d
 
# 二周后的星期一
date -d'monday+14 days' +%Y%m%d
date -d'monday+fortnight' +%Y%m%d
 
# 二周前的星期一
date -d'monday-14 days' +%Y%m%d
date -d'monday-fortnight ago' +%Y%m%d
 
# 一年后的星期一
date -d'52+monday' +%Y%m%d
 
# 一年前的星期一(无效)
date -d'52-monday' +%Y%m%d
 
# 指定时间的某一天(20150401的第二天、第十天)
date -d "1 day 20150401" +%Y%m%d
date -d "10 day 20150401" +%Y%m%d
 
# 上个月的最后一天
date -d "-$(date +%d) days" +"%Y%m%d" # 某些时区有问题
date -d "$(date +%Y-%m-01) -1 day" +"%Y%m%d" # 推荐
 
# 指定时间生成unixtime
date -d "2017-03-22" "+%s"
date -d "2017-03-22 17:08:00" "+%s"
date -d "20170322 10:00:00" "+%s"
 
# 指定unixtime时间格式化
date -d @1489629599 "+%Y%m%d"
 
# 上个月,但是30号、31号有bug
date -dlast-month +%Y%m