Skip to content

Latest commit

 

History

History
36 lines (30 loc) · 604 Bytes

49.md

File metadata and controls

36 lines (30 loc) · 604 Bytes

题目要求

用shell脚本判断输入的日期是否合法。

比如20170110就是合法日期,20171332就不合法。

参考答案

#!/bin/bash
if [ $# -ne 1 ] || [ ${#1} -ne 8 ]
then
    echo "请输入正确的格式,sh $0 yyyymmdd"
    exit 1
fi

y=`echo ${1:0:4}`
m=`echo ${1:4:2}`
d=`echo ${1:6:2}`

if echo $d|grep -q "^0" 
then
    d=`echo ${1:6:2}|sed 's/^0//'`
fi

if cal $m $y >/dev/null 2>/dev/null
then
    if ! cal $m $y|grep -qw "$d"
    then
	echo "你给的日期是不合法的"
    else
	echo "日期合法"
    fi
else
    echo "你给的日期不合法"
fi