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

Replies to Quel-Jour.sh rss

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