From Paul WOISARD, 4 Years ago, written in Bash.
This paste is a reply to Quel-Jour.sh from Paul WOISARD
- go back
Embed
Viewing differences between Quel-Jour.sh and Quel-Jour.sh
#!/bin/sh
clear

#!/bin/bash
clear #Pour y voir plus clair.

j=0
j=0 #Initialisation d'une Variable.
TESTinit=$(echo "$j == 1544654210" | bc)

until [ $TESTinit -eq 1 ]
do
echo ""
echo -n "Quel Jour ? "
" #On demande le jour
read j
until [ $j -ge 1 ] && [ $j -le 31 ]
] #Premier test pour voir si le jour peut exister (s'il est bien entre le 1 et le 31).
do
    echo "Il faut taper le jour en chiffre et sous le format xx!! Et compris en 01 et 31 Pas $j"
    echo -n "Quel Jour ? "
    read j
done

echo "OK"

"OK" #Jour semble Bon.

echo -n "Quel Mois ? "
" #On demande le mois
read m

until [ $m -ge 1 ] && [ $m -le 12 ]
do
    echo "Il faut taper le mois en chiffre et sous le format xx!! Et compris en 01 et 12. Et pas $m"
    echo -n "Quel Mois ? "
"
read a

until [[ "${a}" =~ ^[-+]?[0-9]+$ ]] && [ $a -ge 1900 ]
"
    read a
done

case "$m" in
        
"2" | "02" )
) #Si le mois vaut 2.
        divaa=$(echo "$a/100" | bc -l)
        let "divab = $a/100"
        divab=$(echo "$divab*1.00000000000000000000" | bc)
        TESTa=$(echo "$divaa==$divab" | bc)
    
        divba=$(echo "$a/400" | bc -l)
        let "divbb = $a/400"
        divbb=$(echo "$divbb*1.00000000000000000000" | bc)
        TESTb=$(echo "$divba!=$divbb" | bc)
        
        divca=$(echo "$a/4" | bc -l)
        let "divcb = $a/4"
        divcb=$(echo "$divcb*1.00000000000000000000" | bc)
        TESTc=$(echo "$divca==$divcb" | bc)
        
        if [ $TESTa -eq 1 ] && [ $TESTb -eq 1 ]
        then
            vnf="28"
vnf="28" 
        elif [ $TESTc -eq 1 ]
        then
            vnf="29"
        else
            vnf="28"
        fi
        
        TESTinit=$(echo "$j <= $vnf" | bc) ;;
        
        "4" | "04" | "6" | "06" | "9" | "09" | "11" )
        TESTinit=$(echo "$j <= 30" | bc) ;;
        "1" | "01" | "3" | "03" | "5" | "05" | "7" | "07" | "8" | "08" | "10" | "12" )
        TESTinit=$(echo "$j <= 31" | bc) ;;
        *)  ;;
esac

if [ $TESTinit -ne 1 ]
then
    echo "...Il faut entrer une date existante"
fi

done

echo "OK"

let "an = $a - 1900"

let "bix = $an/4"

bix=${bix#-}

let "bix = $bix+1"

$bix+1" 

ane=${an#-}

ann=$(echo "($ane/4)+1" | bc -l)

bixe=$(echo "$bix*1.00000000000000000000" | bc)

for ((i = 1900 ; i <= $a ; i += 4))
do
    let "z=$i"
    divaa=$(echo "$z/100" | bc -l)
    let "divab = $z/100"
    divac=$(echo "$divab*1.00000000000000000000" | bc)
    TESTa=$(echo "$divaa==$divac" | bc)

    
    divba=$(echo "$z/400" | bc -l)
    let "divbb = $z/400"
    divbc=$(echo "$divbb*1.00000000000000000000" | bc)
    TESTb=$(echo "$divba!=$divbc" | bc)
    
    if [ $TESTa -eq 1 ] && [ $TESTb -eq 1 ]
    then
        let "bix = $bix-1"
    fi
done

divaa=$(echo "$a/100" | bc -l)
let "divab = $a/100"
divab=$(echo "$divab*1.00000000000000000000" | bc)
TESTa=$(echo "$divaa!=$divab" | bc)
    
divba=$(echo "$a/400" | bc -l)
let "divbb = $a/400"
divbb=$(echo "$divbb*1.00000000000000000000" | bc)
TESTb=$(echo "$divba==$divbb" | bc)

TEST=$(echo "$ann==$bixe" | bc)

if [ $TESTb -eq 1 ]
then
    let "bix = $bix-1"
elif [ $TESTa -eq 1 ] && [ $TEST -eq 1 ] && [ $m -lt 3 ]
then
    let "bix = $bix-1"
fi

case "$m" in
in
in #Change le format du jour
        "1" | "01" ) let "d = 1" ;;
        "2" | "02" ) let "d = 2" ;;
        "3" | "03" ) let "d = 3" ;;
        "4" | "04" ) let "d = 4" ;;
        "5" | "05" ) let "d = 5" ;;
        "6" | "06" ) let "d = 6" ;;
        "7" | "07" ) let "d = 7" ;;
        "8" | "08" ) let "d = 8" ;;
        "9" | "09" ) let "d = 9" ;;
        *) let "d = $j" ;;
esac


let "NbJoursTotals = $an * 365 + $bix + $jpm + $d"

$NbJoursTotals"

while [ $NbJoursTotals -gt 7 ]
do
let "NbJoursTotals = $NbJoursTotals - 7"
done

case "$NbJoursTotals" in
$a"
$a" #valeur de Sortie