zoukankan      html  css  js  c++  java
  • 003#规范日期格式

    输入要求:
      1. 月份为英文名称或1至12的数字表示,如 January 或 1
      2. 年份由4位数组成,如 2020

    格式化为:
      3个字母的月份名称(第一个字符大写)、天数及4位数的年份组成

    #!/bin/bash
    #
    
    numMonth(){
      # 将月份规范成3个字母,首字母大写
      case $1 in
        1)mon="Jan" ;;
        2)mon="Feb" ;;
        3)mon="Mar" ;;
        4)mon="Apr" ;;
        5)mon="May" ;;
        6)mon="Jun" ;;
        7)mon="Jul" ;;
        8)mon="Aug" ;;
        9)mon="Sep" ;;
        10)mon="Oct" ;;
        11)mon="Nor" ;;
        12)mon="Dec" ;;
        *) echo "$0: Unknown month value $1" >&2
           exit 1
      esac
      return 0
    }
    
    # 验证输入
    if [ $# -ne 3 ]; then
      echo "Usage: $0 month day year" >&2
      exit 1
    fi
    
    expr $2 + 0 &>/dev/null
    
    if [ $? -ne 0 ]; then
      echo "$0: days must be digit in [1-31]." >&2
      exit 1
    fi
    
    if [ $2 -lt 1 ]||[ $2 -gt 31 ]; then
      echo "$0: days must be in [1-31]." >&2
      exit 1
    fi
    
    if [ $3 -le 1000 ] || [ $3 -gt 9999 ]; then
      echo "$0: expected 4-digit year value." >&2
      exit 1
    fi
    
    if [ -z $(echo $1|sed 's/[[:digit:]]//g') ]; then
      numMonth $1
    else
      mon="$(echo ${1%${1#?}} |tr [a-z] [A-Z])"
      # cut -c 1 截取第1个字符
      # tr '[:upper:] [:lower:]' 大写转小写
      mon="$mon$(echo $1| cut -c 2-3| tr [A-Z] [a-z])"
      # cut -c 2-3 截取第2至3个字符
    fi
    
    echo $mon $2 $3
    
    exit 0
    *** 你必须十分努力,才能看起来毫不费力 ***
  • 相关阅读:
    Python_day1
    12/04
    Linux基础笔记
    八:动态规划-未名湖边的烦恼
    七:动态规划-数字三角形
    六:大数运算-减法运算
    五:大数运算-加法运算
    四:大数运算-乘法运算
    三:排序-幸运数字
    二:排序-果园
  • 原文地址:https://www.cnblogs.com/bigtree2pingping/p/12928197.html
Copyright © 2011-2022 走看看