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

Ceci est une ancienne révision du document !


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.

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

feries
#!/bin/bash
 
### Couleurs et Formats Textes
source /home/MesLibs/BASH/couleurs_formats_text_term
 
 
### 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 -d":" nom; read -d":" secondes; }
do
    if [[ $nom =~ â|ê|ë|ô ]]
    then
        long1=21
    else
        long1=20
    fi
 
    date="$(date --date=@"$secondes" "+%A %d %B %Y")"
    if [[ $date =~ é|û ]]
    then
        long2=10
    else
        long2=9
    fi
    printf "%-3s%-${long1}s%-3s%-9s%-3s%-${long2}s%-5s\n" "" "$nom" ":" "$date"
done <<<$(sort -n -t":" -k2 <<<"$tmp")
 
echo
 
exit

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.1678173681.txt.gz · Dernière modification: 07/03/2023 08:21 par Tawal

Pied de page des forums

Propulsé par FluxBB