use strict;
use warnings;

for my $jahr (2010 .. 2015)
  {
  my ($tag, $mon) = ostern($jahr);
  printf("Ostern faellt %d auf den %d.%d.\n", $jahr, $tag, $mon);
  }
  
sub ostern #($jahr)
# Osterdatum berechnen
  {
  my ($atmp, $btmp, $ctmp, $dtmp, $etmp, $ftmp,
      $gtmp, $htmp, $itmp, $ktmp, $ltmp, $mtmp,
      $tag, $monat);
  my $jahr = shift;

  $atmp = int($jahr % 19);
  $btmp = int($jahr / 100);
  $ctmp = int($jahr % 100);
  $dtmp = int($btmp / 4);
  $etmp = int($btmp % 4);
  $ftmp = int(($btmp + 8) / 25);
  $gtmp = int(($btmp - $ftmp + 1) / 3);
  $htmp = int((19 * $atmp) + $btmp - $dtmp - $gtmp + 15) % 30;
  $itmp = int($ctmp / 4);
  $ktmp = $ctmp % 4;
  $ltmp = int(32 + (2 * $etmp) + (2 * $itmp) - $htmp - $ktmp) % 7;
  $mtmp = int(($atmp + (11 * $htmp) + (22 * $ltmp)) / 451);
  $monat = int(($htmp + $ltmp - (7 * $mtmp) + 114) / 31);
  $tag = int (($htmp + $ltmp - (7 * $mtmp) + 114) % 31) + 1;
  return($tag,$monat);
  }

