iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >shell脚本中怎么判断输入的日期是否正确
  • 298
分享到

shell脚本中怎么判断输入的日期是否正确

2023-06-09 17:06:16 298人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关shell脚本中怎么判断输入的日期是否正确,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下面是代码#!/bin/sh# valid-date 

这篇文章将为大家详细讲解有关shell脚本中怎么判断输入的日期是否正确,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。


下面是代码

#!/bin/sh# valid-date -- Validates a date, taking into account leap year rules.exceedsDaysInMonth(){ case $(echo $1|tr '[:upper:]' '[:lower:]') in  jan* ) days=31  ;; feb* ) days=28  ;;  mar* ) days=31  ;; apr* ) days=30  ;;  may* ) days=31  ;; jun* ) days=30  ;;  jul* ) days=31  ;; aug* ) days=31  ;;  sep* ) days=30  ;; oct* ) days=31  ;;  nov* ) days=30  ;; dec* ) days=31  ;;  * ) echo "$0: Unknown month name $1" >&2; exit 1  esac  if [ $2 -lt 1 -o $2 -gt $days ] ; then   return 1  else   return 0  # the day number is valid  fi}isLeapYear(){ year=$1 if [ "$((year % 4))" -ne 0 ] ; then  return 1 # nope, not a leap year elif [ "$((year % 400))" -eq 0 ] ; then  return 0 # yes, it's a leap year elif [ "$((year % 100))" -eq 0 ] ; then  return 1 else  return 0 fi}## Begin main scriptif [ $# -ne 3 ] ; then echo "Usage: $0 month day year" >&2 echo "Typical input fORMats are 8 3 2002" >&2 exit 1fi# Normalize date and split back out returned valuesif [ $? -eq 1 ] ; then exit 1    # error condition already reported by normdatefimonthnoToName(){ # Sets the variable 'month' to the appropriate value case $1 in  01|1 ) monthd="Jan"  ;; 02|2 ) monthd="Feb"  ;;  03|3 ) monthd="Mar"  ;; 04|4 ) monthd="Apr"  ;;  05|5 ) monthd="May"  ;; 06|6 ) monthd="Jun"  ;;  07|7 ) monthd="Jul"  ;; 08|8 ) monthd="Aug"  ;;  09|9 ) monthd="Sep"  ;;   10) monthd="Oct"  ;;    11) monthd="Nov"  ;;   12) monthd="Dec"  ;;  * ) echo "$0: Unknown numeric month value $1" >&2; exit 1  esac  return 0}monthnoToName $1month="$monthd" day="$2" year="$3" if ! exceedsDaysInMonth $month "$2" ; then if [ "$month" = "Feb" -a "$2" -eq "29" ] ; then  if ! isLeapYear $3 ; then   echo "$0: $3 is not a leap year, so Feb doesn't have 29 days" >&2   exit 1  fi else  echo "$0: bad day value: $month doesn't have $2 days" >&2  exit 1 fifiecho "Valid date: $newdate"exit 0

分析:
1)首先判断用户输入的参数个数是否正确,接着case $1 in 语句判断月份是否合理。
2)monthnoToName 函数之前出现在我们之前的第03个脚本案例中,用来转换输入的数字日期为字符串
3) exceedsDaysInMonth 用来判断天数是否超过对应月的最大天数,紧跟着 if [ "$month" = "Feb" -a "$2" -eq "29" ] ; then if ! isLeapYear $3 ; then 用来判断闰年2月的特殊情况
4)总体的感觉是脚本还是很紧凑的,特别是在判断闰年与2月的关系的那段代码,有点意思。

关于shell脚本中怎么判断输入的日期是否正确就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: shell脚本中怎么判断输入的日期是否正确

本文链接: https://www.lsjlt.com/news/256957.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell脚本中怎么判断输入的日期是否正确
    这篇文章将为大家详细讲解有关shell脚本中怎么判断输入的日期是否正确,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。下面是代码#!/bin/sh# valid-date ...
    99+
    2023-06-09
  • 怎么用java判断日期格式是否正确
    你可以使用SimpleDateFormat类来判断日期格式是否正确。以下是一个示例: import java.text.ParseE...
    99+
    2023-10-22
    java
  • Shell脚本中怎么判断输入变量
    Shell脚本中怎么判断输入变量,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.判断变量代码如下:read -p "input a word :" wor...
    99+
    2023-06-09
  • Shell脚本中怎么判断输入参数的个数
    这期内容当中小编将会给大家带来有关Shell脚本中怎么判断输入参数的个数,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。$#代表了命令行的参数数量,可以看以下实例:if [ $# != 1 ] ; then...
    99+
    2023-06-09
  • 如何在shell脚本中判断输入参数是否为整数值
    如何在shell脚本中判断输入参数是否为整数值?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、用shell命令使其与某个整型值进行计算,通过$来判断其是否是一...
    99+
    2023-06-09
  • 怎么在Shell脚本中判断用户的输入内容
    本篇文章为大家展示了怎么在Shell脚本中判断用户的输入内容,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.脚本功能:提示客户属于一串数字,并判断用户是否进行了输入,输入的是否为数字#!/bin/...
    99+
    2023-06-09
  • VBSrcipt中怎么判断是否是日期
    VBSrcipt中怎么判断是否是日期,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。<SCRIPT LANGUAGE="vbScript"...
    99+
    2023-06-08
  • Shell脚本中怎么判断变量是否为数字
    Shell脚本中怎么判断变量是否为数字,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。方法1:通过expr 计算变量与一个整数值相加,如果能正常执行则为整数,否则执行出错,$...
    99+
    2023-06-09
  • Shell脚本中怎么判断IP地址是否合法
    Shell脚本中怎么判断IP地址是否合法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用shell校验IP地址合法性代码如下:[root@yang pytho...
    99+
    2023-06-09
  • Shell脚本中怎么判断Apache进程是否存在
    Shell脚本中怎么判断Apache进程是否存在,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。写一个脚本检查Apache进程是否存在,若不存在则显示不存在,若存在则显示进程...
    99+
    2023-06-09
  • javascript正则怎么判断输入是否是整数
    本篇内容介绍了“javascript正则怎么判断输入是否是整数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2024-04-02
  • shell脚本怎样判断文件是否存在
    目录shell脚本判断文件是否存在shell脚本之文件是否存在、权限校验判断目录是否存在判断文件是否存在判断目录/文件是否存在判断文件权限判断文件是否属于当前用户判断文件是否与当前用户相同用户组比较文件之间是否为新建复合...
    99+
    2023-06-07
    shell脚本 shell判断文件是否存在 shell判断文件
  • 怎么判断json的格式是否正确
    要判断一个JSON格式是否正确,可以通过以下几种方法:1. 通过尝试解析JSON:可以使用JSON解析库(如Python的json库...
    99+
    2023-09-29
    json
  • 怎么使用shell脚本判断参数是否为空
    在shell脚本中,可以使用条件判断语句来判断参数是否为空。以下是一个示例:```shell#!/bin/bashif [ -z "...
    99+
    2023-09-15
    shell
  • 怎么使用shell脚本判断进程是否存在
    可以使用以下方式来判断进程是否存在: #!/bin/bash # 判断进程是否存在的函数 check_process() { ...
    99+
    2024-04-02
  • oracle怎么判断日期是否合法
    在Oracle中,可以使用TO_DATE函数将字符串转换为日期,如果转换成功则表示日期合法,如果转换失败则表示日期不合法。例如: S...
    99+
    2024-04-29
    oracle
  • 怎么在JavaScript中判断日期是否大于当前日期
    这期内容当中小编将会给大家带来有关怎么在JavaScript中判断日期是否大于当前日期,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击...
    99+
    2023-06-14
  • oracle怎么判断日期是否为节假日
    Oracle数据库本身并没有内置的函数或方法来判断日期是否为节假日,但可以通过自定义解决方案来实现这一功能。以下是一种可能的方法: ...
    99+
    2024-04-09
    oracle
  • shell中怎么判断用户输入
    shell中怎么判断用户输入,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。#!/bin/sh# validint -- Valid...
    99+
    2023-06-09
  • php怎么判断邮箱格式是否正确
    可以使用正则表达式来判断邮箱格式是否正确。以下是一个简单的示例代码: function validateEmail($email) ...
    99+
    2024-02-29
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作