Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # -*- coding: utf-8 -*-
- # $Id: ostern,v 1.3 2020/09/21 21:54:14 elias Exp $
- ########################################################################
- #
- # Berechnung des Osterdatums für ein Jahr
- # Quelle der Formel:
- # https://de.wikipedia.org/wiki/Gau%C3%9Fsche_Osterformel
- #
- ########################################################################
- PATH=/bin:/usr/bin
- case $# in
- 0)
- year=`date +%Y`
- ;;
- 1)
- year=$1
- ;;
- *)
- echo 1>&2 "Zu viele Parameter."
- exit 1
- ;;
- esac
- case $year in
- -h)
- echo 1>&2 "Benutzung: ostern [-n | jahr]"
- echo 1>&2 "Ohne Jahresangabe wird das aktuelle Jahr genommen"
- echo 1>&2 "Bei -n wird das nächste Jahr genommen"
- exit
- ;;
- -n)
- year=`date +%Y`
- year=`expr $year + 1`
- ;;
- esac
- echo $year | awk '
- {
- year = $1
- a = year % 19
- b = year % 4
- c = year % 7
- k = int(year / 100)
- p = int((8 * k + 13) / 25)
- q = int(k / 4)
- m = (15 + k - p - q) % 30
- d = (19 * a + m) % 30
- n = (4 + k - q) % 7
- e = (2 * b + 4 * c + 6 * d + n) % 7
- oday = (22 + d + e)
- omnt = 3
- if (oday > 31) { oday -= 31; omnt += 1 }
- printf("%04d-%02d-%02d\n", year, omnt, oday)
- }'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement