#!/bin/bash
declare -A periods
rec=0
read -r args
set -- $args
for arg
do
echo "arg: $arg"
day= month= year=
case $arg in
*/*/* | *-*-*)
read -r year month day < <(date '+%Y %m %d' -d "$arg")
;;
????[-/]?? | ????[-/]?)
IFS='-/' read -r year month <<< "$arg"
;;
??[-/]???? | ?[-/]????)
IFS='-/' read -r month year <<< "$arg"
;;
esac
periods[$rec,year]="$year"
periods[$rec,month]="$month"
periods[$rec,day]="$day"
((rec++))
done
declare -p periods
# display
for ((i=0; i<rec; i++))
do
echo "year: ${periods[$i,year]} / month: ${periods[$i,month]} / day: ${periods[$i,day]}"
done
IyEvYmluL2Jhc2gKCmRlY2xhcmUgLUEgcGVyaW9kcwpyZWM9MAoKcmVhZCAtciBhcmdzCnNldCAtLSAkYXJncwpmb3IgYXJnCmRvCiAgICBlY2hvICJhcmc6ICRhcmciCgogICAgZGF5PSBtb250aD0geWVhcj0KCiAgICBjYXNlICRhcmcgaW4KICAgICAgKi8qLyogfCAqLSotKikKICAgICAgICAgIHJlYWQgLXIgeWVhciBtb250aCBkYXkgPCA8KGRhdGUgJyslWSAlbSAlZCcgLWQgIiRhcmciKQogICAgICAgICAgOzsKICAgICAgPz8/P1stL10/PyB8ID8/Pz9bLS9dPykKICAgICAgICAgIElGUz0nLS8nIHJlYWQgLXIgeWVhciBtb250aCA8PDwgIiRhcmciCiAgICAgICAgICA7OwogICAgICA/P1stL10/Pz8/IHwgP1stL10/Pz8/KQogICAgICAgICAgSUZTPSctLycgcmVhZCAtciBtb250aCB5ZWFyIDw8PCAiJGFyZyIKICAgICAgICAgIDs7CiAgICBlc2FjCgogICAgcGVyaW9kc1skcmVjLHllYXJdPSIkeWVhciIKICAgIHBlcmlvZHNbJHJlYyxtb250aF09IiRtb250aCIKICAgIHBlcmlvZHNbJHJlYyxkYXldPSIkZGF5IgogICAgKChyZWMrKykpCmRvbmUKCmRlY2xhcmUgLXAgcGVyaW9kcwoKIyBkaXNwbGF5CmZvciAoKGk9MDsgaTxyZWM7IGkrKykpCmRvIAogICAgZWNobyAieWVhcjogJHtwZXJpb2RzWyRpLHllYXJdfSAvIG1vbnRoOiAke3BlcmlvZHNbJGksbW9udGhdfSAvIGRheTogJHtwZXJpb2RzWyRpLGRheV19Igpkb25lCg==