From Paul WOISARD, 2 Years ago, written in Bash.
This paste is a reply to Quel-Jour.sh from Paul WOISARD
- view diff
Embed
  1. #!/bin/sh
  2. clear
  3.  
  4. echo "Vous voulez savoir le jour d'une date donnée, ce petit script est fait pour vous"
  5. echo ""
  6. echo "On va vous demander d'abord le jour, puis le mois et finalement l'année (en chiffre), Mais..."
  7.  
  8. j=0
  9. TESTinit=$(echo "$j == 1544654210" | bc)
  10.  
  11. until [ $TESTinit -eq 1 ]
  12. do
  13. echo ""
  14. echo -n "Quel Jour ? "
  15. read j
  16. until [ $j -ge 1 ] && [ $j -le 31 ]
  17. do
  18.     echo "Il faut taper le jour en chiffre et sous le format xx!! Et compris en 01 et 31 Pas $j"
  19.     echo -n "Quel Jour ? "
  20.     read j
  21. done
  22.  
  23. echo "OK"
  24.  
  25. echo -n "Quel Mois ? "
  26. read m
  27.  
  28. until [ $m -ge 1 ] && [ $m -le 12 ]
  29. do
  30.     echo "Il faut taper le mois en chiffre et sous le format xx!! Et compris en 01 et 12. Et pas $m"
  31.     echo -n "Quel Mois ? "
  32.     read m
  33. done
  34.  
  35. echo "OK"
  36.  
  37. echo -n "Quel année ? "
  38. read a
  39.  
  40. until [[ "${a}" =~ ^[-+]?[0-9]+$ ]] && [ $a -ge 1900 ]
  41. do
  42.     echo "Il faut taper l'année en chiffre et sous le format xxxx!! et supérieur ou égal çà 1900. Et pas $a"
  43.     echo -n "Quel année ? "
  44.     read a
  45. done
  46.  
  47. case "$m" in
  48.         "2" | "02" )
  49.         divaa=$(echo "$a/100" | bc -l)
  50.         let "divab = $a/100"
  51.         divab=$(echo "$divab*1.00000000000000000000" | bc)
  52.         TESTa=$(echo "$divaa!=$divab" | bc)
  53.    
  54.         divba=$(echo "$a/400" | bc -l)
  55.         let "divbb = $a/400"
  56.         divbb=$(echo "$divbb*1.00000000000000000000" | bc)
  57.         TESTb=$(echo "$divba==$divbb" | bc)
  58.        
  59.         if [ $TESTa -eq 1 ] && [ $TESTb -eq 1 ]
  60.         then
  61.         let "vnf = 29"
  62.         else
  63.         let "vnf = 28"
  64.         fi
  65.        
  66.         TESTinit=$(echo "$j <= $vnf" | bc) ;;
  67.        
  68.         "4" | "04" | "6" | "06" | "9" | "09" | "11" )
  69.         TESTinit=$(echo "$j <= 30" | bc) ;;
  70.         "1" | "01" | "3" | "03" | "5" | "05" | "7" | "07" | "8" | "08" | "10" | "12" )
  71.         TESTinit=$(echo "$j <= 31" | bc) ;;
  72.         *)  ;;
  73. esac
  74.  
  75. if [ $TESTinit -ne 1 ]
  76. then
  77.     echo "...Il faut entrer une date existante"
  78. fi
  79.  
  80. done
  81.  
  82. echo "OK"
  83.  
  84. let "an = $a - 1900"
  85.  
  86. let "bix = $an/4"
  87.  
  88. bix=${bix#-}
  89.  
  90. let "bix = $bix+1"
  91.  
  92. ane=${an#-}
  93.  
  94. ann=$(echo "($ane/4)+1" | bc -l)
  95.  
  96. bixe=$(echo "$bix*1.00000000000000000000" | bc)
  97.  
  98. for ((i = 1900 ; i <= $a ; i += 4))
  99. do
  100.     let "z=$i"
  101.     divaa=$(echo "$z/100" | bc -l)
  102.     let "divab = $z/100"
  103.     divac=$(echo "$divab*1.00000000000000000000" | bc)
  104.     TESTa=$(echo "$divaa==$divac" | bc)
  105.  
  106.    
  107.     divba=$(echo "$z/400" | bc -l)
  108.     let "divbb = $z/400"
  109.     divbc=$(echo "$divbb*1.00000000000000000000" | bc)
  110.     TESTb=$(echo "$divba!=$divbc" | bc)
  111.    
  112.     if [ $TESTa -eq 1 ] && [ $TESTb -eq 1 ]
  113.     then
  114.         let "bix = $bix-1"
  115.     fi
  116. done
  117.  
  118. divaa=$(echo "$a/100" | bc -l)
  119. let "divab = $a/100"
  120. divab=$(echo "$divab*1.00000000000000000000" | bc)
  121. TESTa=$(echo "$divaa!=$divab" | bc)
  122.    
  123. divba=$(echo "$a/400" | bc -l)
  124. let "divbb = $a/400"
  125. divbb=$(echo "$divbb*1.00000000000000000000" | bc)
  126. TESTb=$(echo "$divba==$divbb" | bc)
  127.  
  128. TEST=$(echo "$ann==$bixe" | bc)
  129.  
  130. if [ $TESTb -eq 1 ]
  131. then
  132.     let "bix = $bix-1"
  133. elif [ $TESTa -eq 1 ] && [ $TEST -eq 1 ] && [ $m -lt 3 ]
  134. then
  135.     let "bix = $bix-1"
  136. fi
  137.  
  138. case "$m" in
  139.         "1" | "01" ) let "jpm = 0"
  140.               mois="Janvier"     ;;
  141.         "2" | "02" ) let "jpm = 31"
  142.               mois="Février"     ;;
  143.         "3" | "03" ) let "jpm = 59"
  144.               mois="Mars"        ;;
  145.         "4" | "04" ) let "jpm = 90"
  146.               mois="Avril"       ;;
  147.         "5" | "05" ) let "jpm = 120"
  148.               mois="Mai"         ;;
  149.         "6" | "06" ) let "jpm = 151"
  150.               mois="Juin"        ;;
  151.         "7" | "07" ) let "jpm = 181"
  152.               mois="Juillet"     ;;
  153.         "8" | "08" ) let "jpm = 212"
  154.               mois="Août"        ;;
  155.         "9" | "09" ) let "jpm = 243"
  156.               mois="Septembre"   ;;
  157.         "10") let "jpm = 273"
  158.               mois="Octobre"    ;;
  159.         "11") let "jpm = 304"
  160.               mois="Novembre"   ;;
  161.         "12") let "jpm = 334"
  162.               mois="Décembre"   ;;
  163.         *) echo "pb" ;;
  164. esac
  165.  
  166. case "$j" in
  167.         "1" | "01" ) let "d = 1" ;;
  168.         "2" | "02" ) let "d = 2" ;;
  169.         "3" | "03" ) let "d = 3" ;;
  170.         "4" | "04" ) let "d = 4" ;;
  171.         "5" | "05" ) let "d = 5" ;;
  172.         "6" | "06" ) let "d = 6" ;;
  173.         "7" | "07" ) let "d = 7" ;;
  174.         "8" | "08" ) let "d = 8" ;;
  175.         "9" | "09" ) let "d = 9" ;;
  176.         *) let "d = $j" ;;
  177. esac
  178.  
  179.  
  180. let "NbJoursTotals = $an * 365 + $bix + $jpm + $d"
  181.  
  182. echo "Nombre de jours entre la date entrée et le 1er Janvier 1900 est de $NbJoursTotals"
  183.  
  184. while [ $NbJoursTotals -gt 7 ]
  185. do
  186. let "NbJoursTotals = $NbJoursTotals - 7"
  187. done
  188.  
  189. case "$NbJoursTotals" in
  190.         "1" ) d="Lundi" ;;
  191.         "2" ) d="Mardi" ;;
  192.         "3" ) d="Mercredi" ;;
  193.         "4" ) d="Jeudi" ;;
  194.         "5" ) d="Vendredi";;
  195.         "6" ) d="Samedi" ;;
  196.         "7" ) d="Dimanche" ;;
  197.         *) echo "pb" ;;
  198. esac
  199.  
  200. echo "La date que vous avez entrée est le $d $j $mois $a"
  201.  

Replies to Re: Quel-Jour.sh rss

Title Name Language When
Quel-Jour.sh Paul WOISARD bash 2 Years ago.