logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Table des matières

Jours Fériés d'une année

  • Affiche la liste des jours fériés d'une année donnée en argument.
  • Script directement fonctionnel (pas de modification nécessaire).

L'aide

Usage :   feries ANNEE
          feries --help

Lister les jours fériés d'une ANNEE donnée en argument.

Option :
    -h,--help    Afficher cette aide et quitter.

L'ANNEE doit être du format AAAA.
Si ANNEE est omis, utiliser l'année en cours.
                                              Tawal®©

Le script

(mis à jour le 10-03-2023)

feries
#!/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

Exemple de retour

feries 2024
Jours fériés de l'année 2024 :

   Jour de l'An        :  lundi    01 janvier  2024 
   Lundi de Pâques     :  lundi    01 avril    2024 
   Fête du Travail     :  mercredi 01 mai      2024 
   Armistice 1945      :  mercredi 08 mai      2024 
   Ascension           :  jeudi    09 mai      2024 
   Lundi de Pentecôte  :  lundi    20 mai      2024 
   Fête Nationnale     :  dimanche 14 juillet  2024 
   Assomption          :  jeudi    15 août     2024 
   Toussaint           :  vendredi 01 novembre 2024 
   Armistice 1918      :  lundi    11 novembre 2024 
   Noël                :  mercredi 25 décembre 2024                  
utilisateurs/tawal/scripts/jours-feries.txt · Dernière modification: 14/05/2023 12:55 par Tawal

Pied de page des forums

Propulsé par FluxBB