fork download
  1. #!/bin/bash
  2.  
  3. declare -A periods
  4. rec=0
  5.  
  6. read -r args
  7. set -- $args
  8. for arg
  9. do
  10. echo "arg: $arg"
  11.  
  12. day= month= year=
  13.  
  14. case $arg in
  15. */*/* | *-*-*)
  16. read -r year month day < <(date '+%Y %m %d' -d "$arg")
  17. ;;
  18. ????[-/]?? | ????[-/]?)
  19. IFS='-/' read -r year month <<< "$arg"
  20. ;;
  21. ??[-/]???? | ?[-/]????)
  22. IFS='-/' read -r month year <<< "$arg"
  23. ;;
  24. esac
  25.  
  26. periods[$rec,year]="$year"
  27. periods[$rec,month]="$month"
  28. periods[$rec,day]="$day"
  29. ((rec++))
  30. done
  31.  
  32. declare -p periods
  33.  
  34. # display
  35. for ((i=0; i<rec; i++))
  36. do
  37. echo "year: ${periods[$i,year]} / month: ${periods[$i,month]} / day: ${periods[$i,day]}"
  38. done
  39.  
Success #stdin #stdout 0.01s 5424KB
stdin
3/14/19 3/14/2020
stdout
arg: 3/14/19
arg: 3/14/2020
declare -A periods=([1,month]="03" [1,year]="2020" [1,day]="14" [0,year]="2019" [0,month]="03" [0,day]="14" )
year: 2019 / month: 03 / day: 14
year: 2020 / month: 03 / day: 14