Initial commit
This commit is contained in:
49
snippets/isValidDate.sh
Executable file
49
snippets/isValidDate.sh
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
isDateInvalid()
|
||||
{
|
||||
DATE="${1}"
|
||||
|
||||
# Autorized separator char ['space', '/', '.', '_', '-']
|
||||
SEPAR="([ \/._-])?"
|
||||
|
||||
# Date format day[01..31], month[01,03,05,07,08,10,12], year[1900..2099]
|
||||
DATE_1="((([123][0]|[012][1-9])|3[1])${SEPAR}(0[13578]|1[02])${SEPAR}(19|20)[0-9][0-9])"
|
||||
|
||||
# Date format day[01..30], month[04,06,09,11], year[1900..2099]
|
||||
DATE_2="(([123][0]|[012][1-9])${SEPAR}(0[469]|11)${SEPAR}(19|20)[0-9][0-9])"
|
||||
|
||||
# Date format day[01..28], month[02], year[1900..2099]
|
||||
DATE_3="(([12][0]|[01][1-9]|2[1-8])${SEPAR}02${SEPAR}(19|20)[0-9][0-9])"
|
||||
|
||||
# Date format day[29], month[02], year[1904..2096]
|
||||
DATE_4="(29${SEPAR}02${SEPAR}(19|20(0[48]|[2468][048]|[13579][26])))"
|
||||
|
||||
# Date 29.02.2000
|
||||
DATE_5="(29${SEPAR}02${SEPAR}2000)"
|
||||
|
||||
# Match the date in the Regex
|
||||
|
||||
#if ! [[ "${DATE}" =~ ^(${DATE_1}|${DATE_2}|${DATE_3}|${DATE_4})$ ]]
|
||||
#then
|
||||
# echo -e "ERROR - '${DATE}' invalid!"
|
||||
#else
|
||||
# echo "${DATE} is valid"
|
||||
#fi
|
||||
|
||||
if [[ "${DATE}" =~ ^(${DATE_1}|${DATE_2}|${DATE_3}|${DATE_4}|${DATE_5})$ ]] ; then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
echo
|
||||
if isDateInvalid "${1}" ; then
|
||||
echo "inavalid Date: ${1}"
|
||||
else
|
||||
echo "${1} is valid."
|
||||
fi
|
||||
echo
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user