Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4845187
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2009-04-11 13:37:58

问题:
任意给定一个日期,求其上一个周一的日期。
如,指定2009-04-08 ,则其上一个周一的日期是2009-04-06
或如,指定2009-04-06,则其上一个周一的日期是2009-03-30.


#!/bin/sh

if [ $# -ne 1 ]
 
then

        echo "Usage: $0 YYYYMMDD"
        exit
fi

now=`date +%Y%m%d
%H:%M:%S`

date -s $1 > /dev/null
echo "last monday is $(date -d last-monday +%Y%m%d)"

date -s $now > /dev/null


唯一的不足是date -s需要root权限.


#/bin/bash

a=`date +%u -d "$1"`
b=`expr $a - 1`
if [ $b -eq 0 ]
then
date -d "-7 day $1"
else
date -d "-${b} day $1"
fi

这个比较需要有想法^_^

阅读(782) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~