#!/bin/bash ### Couleurs et Formats Textes Surb='\e[1m' Rst='\e[m' ### Fonctions usage() { echo -e "Usage : ${Surb}${0##*/} ANNEE${Rst}" echo -e " ${Surb}${0##*/} --help${Rst}" echo echo -e "Lister les jours fériés d'une ${Surb}ANNEE${Rst} donnée en argument." echo echo "Option :" echo " -h,--help Afficher cette aide et quitter." echo echo -e "L'${Surb}ANNEE${Rst} doit être du format ${Surb}AAAA${Rst}." echo -e "Si ${Surb}ANNEE${Rst} est omis, utiliser l'année en cours." printf "%55s\n" "Tawal®©" exit 0 } err_opt() { echo -e "L'option '${Surb}$1${Rst}' n'est pas reconnue." >&2 exit 1 } ### Gestion Options et Arguments while getopts :h-: opt do case $opt in h) usage ;; -) case $OPTARG in help) usage ;; *) err_opt --"$OPTARG" ;; esac ;; *) err_opt -"$OPTARG" ;; esac done an=$1 if [ $# -eq 0 ] then echo "Recherche sur l'année en cours." an=$(date +%Y) fi if ! [[ $an =~ ^[0-9]{4}$ ]] then echo "L'année doit comporter 4 chiffres." 1>&2 exit 1 fi ### Corps du Programme echo "Jours fériés de l'année $an :" echo Paques=$(date --date="$(ncal -e "$an" | awk -F"/" '{print $3"-"$2"-"$1}')" +%s) tmp="Jour de l'An:$(date --date="$an"-01-01 +%s): Fête du Travail:$(date --date="$an"-05-01 +%s): Armistice 1945:$(date --date="$an"-05-08 +%s): Fête Nationnale:$(date --date="$an"-07-14 +%s): Assomption:$(date --date="$an"-08-15 +%s): Toussaint:$(date --date="$an"-11-01 +%s): Armistice 1918:$(date --date="$an"-11-11 +%s): Noël:$(date --date="$an"-12-25 +%s): Lundi de Pâques:$((Paques+1*86400)): Ascension:$((Paques+39*86400)): Lundi de Pentecôte:$((Paques+50*86400)):" while { read -rd":" nom; read -rd":" secondes; } do [[ $nom =~ â|ê|ë|ô ]] && long1=21 || long1=20 read -ra date < <(date --date=@"$secondes" "+%A %d %B %Y") [[ ${date[*]} =~ é|û ]] && long2=10 || long2=9 printf "%-3s%-${long1}s%-3s%-9s%-3s%-${long2}s%-5s\n" "" "$nom" ":" "${date[@]}" done < <(sort -n -t":" -k2 <<<"$tmp") echo