Außerdem habe ich nur Monatsansichten und keine Jahresansichten so wie du es hast.
Hm. Wenn Du in der testMonthCalendar.php die For-Schleife weglässt wirst Du sehen, dass dass es nicht ein Jahreskalender sondern 12 Monatskalender sind:
<?php
error_reporting( E_ALL );
ini_set( 'display_errors', 1 );
require 'MonthCalendar.php';
$o = new MonthCalendar();
$o -> setLocale( 'de_DE.utf-8' );
if ( isset( $_GET['action'] ) ) {
if( 'nextYear' == $_GET['action'] ) { $o -> setYearNext(); }
if( 'earlierYear' == $_GET['action'] ) { $o -> setYearBefore(); }
if( 'nextMonth' == $_GET['action'] ) { $o -> setMonthNext(); }
if( 'earlierMonth' == $_GET['action'] ) { $o -> setMonthBefore(); }
}
if ( isset( $_GET['y'] ) ) { $o -> setYear($_GET['y']); }
if ( isset( $_GET['m'] ) ) { $o -> setMonth($_GET['m']); }
$o -> daysSprintf = '%d'; # '%02d' -> "01" (default) , '%d' -> "1"
$o -> daysLinkSprintf='https://home.fastix.org/Tests/PHP:Feiertage/test-feiertage-form.php?jahr=%04d&monat=%02d&tag=%02d';
?>
<!Doctype html>
<html>
<head>
<title>Kalender</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
<style type="text/css">
body, html {
font-family: sans-serif;
}
table.Calendar td,
table.Calendar th {
text-align:center;
min-width:2.0em;
border: 2px solid transparent;
border-collapse: collapse;
border-radius: 5px;
}
table.Calendar td.ThisDay {
background-color: #9c27b0;
color:#f5f5f5;
font-weight:900;
}
table.Calendar td a,
table.Calendar td a:link,
table.Calendar td a:visited,
table.Calendar td a:hover,
table.Calendar td a:focus {
display:block;
width:100%;
height:100%;
text-decoration: none;
color: inherit;
}
table.Calendar th {
background-color: #b2ebf2;
}
table.Calendar td.Sat {
background-color: #f8bbd0;
}
table.Calendar td.Son {
background-color: #f48fb1;
}
table.Calendar td:hover {
border-color: #d1c4e9;
font-weight: 900;
}
table.Calendar td.NotExistentDay:hover {
border-color: transparent;
}
</style>
<head>
<body>
<hr>
<?php $o -> printCalendar(); ?>
</body>
</html>
So. Auf und davon jetzt!