Skip to main content
enforce syntax highlighting
Source Link
HalosGhost
  • 4.9k
  • 10
  • 37
  • 42
#Purpose: Validate a date #Usage: chkdate year month day # if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date 

-- INSERT --

#Purpose: Validate a date #Usage: chkdate year month day # if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date 
#Purpose: Validate a date #Usage: chkdate year month day # if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date 

-- INSERT --

#Purpose: Validate a date #Usage: chkdate year month day # if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date 
added 270 characters in body; edited title
Source Link
jimmij
  • 48.7k
  • 20
  • 136
  • 141

just wanted to know what amdam i doing wrong in the end of this script that doesnt put my checkdate in to cal command

#Purpose: Validate a date #Usage: chkdate year month day

#Purpose: Validate a date #Usage: chkdate year month day # if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date 

if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date -- INSERT --

just wanted to know what amd i doing wrong in the end of this script that doesnt put my checkdate in to cal command

#Purpose: Validate a date #Usage: chkdate year month day

if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date -- INSERT --

just wanted to know what am i doing wrong in the end of this script that doesnt put my checkdate in to cal command

#Purpose: Validate a date #Usage: chkdate year month day # if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date 

-- INSERT --

Source Link

just wanted to know what amd i doing wrong in the end of this script that doesnt put my checkdate in to cal command

#Purpose: Validate a date #Usage: chkdate year month day

if [ $# -eq 0 ]; then echo Usage: chkdate year month day exit 0 fi year=$1; month=$2; day=$3; extra=$4 if [[ "$extra" != "" ]]; then # Too much data! echo Usage: chkdate year month day exit 1 fi if [[ "$year" == "" || "$month" == "" || "$day" == "" ]]; then # Not enough data! echo Usage: chkdate year month day exit 2 fi if [[ ! ( $year =~ ^[0-9]+$ && $month =~ ^[0-9]+$ && $day =~ ^[0-9]+$ ) ]]; then # Date not numeric! echo Usage: chkdate year month day exit 3 fi #Remove leading zeros if any year=$(echo "$year" | bc) month=$(echo "$month" | bc) day=$(echo "$day" | bc) if [[ $year -lt 1 || $year -gt 9999 || $month -lt 1 || $month -gt 12 || $day -lt 1 || $day -gt 31 ]]; then # Date out of range! echo Usage: chkdate year month day exit 4 fi if [[ ( $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12 ) && $day -gt 31 ]]; then # Invalid day! echo Usage: chkdate year month day exit 5 fi if [[ ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) && $day -gt 30 ]]; then # Invalid day! echo Usage: chkdate year month day exit 6 fi if [[ $month == 2 && $(($year%100)) == 0 ]]; then if [[ $(($year%400)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi elif [[ $month == 2 && $(($year%4)) == 0 ]]; then isLeapYear=1 else isNotLeapYear=1 fi if [[ $month == 2 && $day -gt 28 && $isNotLeapYear ]]; then # Not Leap year! echo Usage: chkdate year month day exit 7 fi if [[ $month == 2 && $day -gt 29 && $isLeapYear ]]; then # Invalid day! echo Usage: chkdate year month day exit 8 fi while [[ $# -ne [1-8] ]]; do cal << ( $year $month $day ) fi echo $year $month $day is valid date -- INSERT --