#!/bin/bash # --- Gestion du fichier CSV --- if [[ -f "$1" ]]; then CSV_FILE="$1" shift else CSV_FILE="./horaires.csv" fi # Traduction manuelle des jours (anglais -> français) declare -A JOURS_EN_FR=( ["Monday"]="Lundi" ["Tuesday"]="Mardi" ["Wednesday"]="Mercredi" ["Thursday"]="Jeudi" ["Friday"]="Vendredi" ["Saturday"]="Samedi" ["Sunday"]="Dimanche" ) # Liste des jours en français (1 = Lundi, ...) JOURS=("Lundi" "Mardi" "Mercredi" "Jeudi" "Vendredi" "Samedi" "Dimanche") # --- Fonction pour normaliser le jour --- normalize_day() { local jour=$1 if [[ -n "${JOURS_EN_FR[$jour]}" ]]; then # Jour anglais → traduction echo "${JOURS_EN_FR[$jour]}" else # Jour français → on force Majuscule initiale echo "${jour^}" fi } # --- Détermination du jour/semaine --- if [[ "$1" =~ ^[1-2]$ ]]; then JOUR_RAW=$(date -d "+$1 day" +"%A") JOUR=$(normalize_day "$JOUR_RAW") SEMAINE_NUM=$(date -d "+$1 day" +"%V") ((SEMAINE_NUM % 2 == 0)) && SEMAINE="A" || SEMAINE="B" elif [[ "$1" =~ ^[1-7][AB]$ ]]; then JOUR_INDEX=${1:0:1} SEMAINE=${1:1:1} JOUR=${JOURS[$((JOUR_INDEX - 1))]} else JOUR_RAW=$(date +"%A") JOUR=$(normalize_day "$JOUR_RAW") SEMAINE_NUM=$(date +"%V") ((SEMAINE_NUM % 2 == 0)) && SEMAINE="A" || SEMAINE="B" fi # --- Lecture du CSV --- HORAIRE=$(awk -F, -v jour="$JOUR" -v semaine="$SEMAINE" '$1 == jour && $2 == semaine {print $3}' "$CSV_FILE") # --- Résultat --- if [[ -n "$HORAIRE" ]]; then echo "Horaires de $JOUR (semaine $SEMAINE) : $HORAIRE" else echo "Aucun horaire trouvé pour $JOUR (semaine $SEMAINE)." fi