Advertisement
cz3dtc

Velikonoce BASH výpočet

Mar 20th, 2022
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. #!/bin/bash
  2. # zdroj: http://cs.wikipedia.org/wiki/V%C3%BDpo%C4%8Det_data_Velikonoc
  3. # platne pro 20. a 21. století
  4.  
  5. rok=$1
  6.  
  7. [ $# -ne 1 ] && rok=`date +%Y`
  8. nums=`tr -d "0-9" <<<"$rok"`
  9. if [ "$nums" != "" ]; then
  10. echo "Parametr \"$rok\" nevyjadruje rok. Pouzije se aktualni rok."
  11. rok=`date +%Y`
  12. fi
  13. if [ $rok -le 1900 -o $rok -gt 2100 ]; then
  14. echo "Rok musi byt z 20. nebo 21. stoleti. Pouzije se aktualni rok."
  15. rok=`date +%Y`
  16. fi
  17.  
  18. a=$(($rok%19)) # po 19 letech se mesicni cyklus opakuje ve stejne dny
  19. b=$(($rok%4)) # cyklus opakovani prestupnych roku
  20. c=$(($rok%7)) # dorovnani dne v tydnu
  21. m=24 # plati pro 20. a 21. stoleti
  22. n=5 # ---//---
  23. d=$(((19*$a+$m)%30))
  24. e=$((($n+2*$b+4*$c+6*$d)%7))
  25. u=$(($d+$e-9))
  26. if [ $u -eq 25 -a $d -eq 28 -a $e -eq 6 -a $a -gt 10 ]; then
  27. u=18
  28. v=4
  29. elif [ $u -ge 1 -a $u -le 25 ]; then
  30. v=4
  31. elif [ $u -gt 25 ]; then
  32. u=$(($u-7))
  33. v=4
  34. else
  35. u=$((22+$d+$e))
  36. v=3
  37. fi
  38.  
  39. echo "Velikonocni nedele vychazi $u.$v.$rok"
  40.  
  41. u=$(($u+1))
  42. if [ $u -eq 32 ]; then
  43. u=1
  44. v=4
  45. fi
  46.  
  47. echo "Velikonocni pondeli vychazi $u.$v.$rok"
  48.  
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement