Druckbarer Monatskalender, ausgearbeitet für die Seite
Berechnet, wie ein Monat tatsächlich auf ein Blatt Papier fällt: wie viele Wochenzeilen das Raster benötigt, in welcher Spalte die erste landet, wie groß jedes Tagesfeld bei dieser Zeilenanzahl herauskommt und die ISO-Wochennummer für jedes Datum. Die Namen von Monaten und Wochentagen stammen aus den lokalen Daten Ihres Browsers und jede Zahl wird auf dieser Registerkarte berechnet.
Der Kalender
Vektor, in Millimetern bemaßt, sodass jede Box genau in der oben angegebenen Größe gedruckt wird. Drucken Sie es von hier aus aus, um die Seite „Möbel“ zu überspringen, oder speichern Sie es und öffnen Sie es in einer beliebigen Datei.
Jeden Tag und wo es landet
| 1 | Sunday | 1 | 7 | 5 | 2026-02-01 |
| 2 | Monday | 2 | 1 | 6 | 2026-02-02 |
| 3 | Tuesday | 2 | 2 | 6 | 2026-02-03 |
| 4 | Wednesday | 2 | 3 | 6 | 2026-02-04 |
| 5 | Thursday | 2 | 4 | 6 | 2026-02-05 |
| 6 | Friday | 2 | 5 | 6 | 2026-02-06 |
| 7 | Saturday | 2 | 6 | 6 | 2026-02-07 |
| 8 | Sunday | 2 | 7 | 6 | 2026-02-08 |
| 9 | Monday | 3 | 1 | 7 | 2026-02-09 |
| 10 | Tuesday | 3 | 2 | 7 | 2026-02-10 |
| 11 | Wednesday | 3 | 3 | 7 | 2026-02-11 |
| 12 | Thursday | 3 | 4 | 7 | 2026-02-12 |
| 13 | Friday | 3 | 5 | 7 | 2026-02-13 |
| 14 | Saturday | 3 | 6 | 7 | 2026-02-14 |
| 15 | Sunday | 3 | 7 | 7 | 2026-02-15 |
| 16 | Monday | 4 | 1 | 8 | 2026-02-16 |
So funktioniert es
Was das bringt
Ein Monatskalender sieht aus wie eine feste Sache, ist es aber nicht. Das gleiche Blatt Papier, die gleichen Ränder und derselbe Monat können als vier oder sechs Zeilen ausgegeben werden, je nachdem, auf welchen Tag der erste zufällig fällt und an welchem Tag Sie die Woche beginnen. Diese Zeilenanzahl bestimmt dann, wie hoch das Tagesfeld ist. Dies ist der Unterschied zwischen einem Kalender, in den Sie schreiben können, und einem Kalender, in den Sie nicht schreiben können.
Dadurch wird das gesamte Layout ausgearbeitet, bevor etwas davon einen Drucker erreicht: Wie viele Zeilen benötigt das Raster, in welcher Spalte befindet sich die erste, wie viele leere Zellen auf beiden Seiten des Monats, wie groß jedes Kästchen bei dieser Zeilenanzahl herauskommt und die ISO-Wochennummer für jedes Datum.
Die Methode
Zwei Zahlen entscheiden alles. Die erste gibt an, wie viele leere Zellen vor der ersten liegen, also den Abstand von der ersten Spalte bis zum Wochentag, an dem der Monat beginnt. Der zweite ist die Länge des Monats. Fügen Sie sie hinzu und Sie haben die Anzahl der Zellen, die das Raster enthalten muss; Durch sieben dividieren und aufrunden, dann erhält man die Reihen.
Deshalb benötigt ein 28-Tage-Februar – genau vier Wochen – so oft noch fünf Zeilen. Der Februar 2026 beginnt an einem Sonntag, und ein Raster, dessen erste Spalte Montag ist, muss sechs Zellen leer lassen, bevor es die erste eintragen kann. Sechs Rohlinge plus 28 Tage sind 34 Zellen, was nicht in 35 passt, da noch Platz übrig ist, aber auch nicht in 28. Verschieben Sie die erste Spalte auf Sonntag und die Leerzeichen verschwinden, der Monat passt in vier Zeilen und jedes Kästchen auf dem Blatt wird um ein Viertel größer.
Für die Datumsarithmetik wird kein Date-Objekt verwendet, was eher eine bewusste Entscheidung als eine Präferenz ist. Date ist ein lokales Zeitzonenobjekt, und die Standardmethode zum Durchlaufen eines Kalenders damit – das Ändern eines Datums um setDate in einer Schleife – ist die Art und Weise, wie Kalenderfehler geschrieben werden, die um einen Tag abweichen, weil eine Maschine westlich von Greenwich den Zeitpunkt des vorherigen Tages rendert. Der Wochentag und die ISO-Wochennummer stammen hier stattdessen von Howard Hinnants days_from_civil, einer exakten Ganzzahlarithmetik über dem proleptischen gregorianischen Kalender, die überhaupt keinen Schaltjahrzweig enthält: Durch die Verschiebung des Jahres auf den März beginnt der Februar, der einzige unregelmäßige Monat, an das Ende, wo sein zusätzlicher Tag danach nichts mehr stört. Ein Date erscheint an genau einer Stelle, da das Argument Intl.DateTimeFormat einen Namen erzeugen muss und jeder Formatierer hier auf UTC festgelegt ist, sodass die eigene Zeitzone der Maschine einen Namen nicht auf den falschen Tag verschieben kann.
ISO-Wochenzahlen verdienen eine eigene Anmerkung, da die Definition nicht intuitiv ist. Wochen laufen von Montag bis Sonntag, und Woche 1 ist die Woche, die den ersten Donnerstag des Jahres enthält. Eine Woche gehört also zu dem Kalenderjahr, in dem es seinen Donnerstag gibt, und ein Datum nahe Ende Dezember oder Januar kann eine Zahl aus dem Nachbarjahr tragen. Diese Wochen werden nicht zweimal gezählt, was der Sinn der Regel ist, aber das bedeutet, dass die Wochennummer gegenüber dem 1. Januar oft 52 oder 53 statt 1 beträgt. Sie werden auch nicht von der Einstellung der ersten Spalte beeinflusst: ISO-Wochen basieren per Definition auf Montag, sodass ein Raster mit Sonntagsbeginn Wochennummern anzeigt, deren Wochen einen Tag vor jeder Zeile begonnen haben.
Die Seitengeometrie ist der unkomplizierte Teil. Der bedruckbare Bereich ist das Blatt abzüglich des doppelten Randes, abzüglich des über dem Raster reservierten Platzes für die Überschrift und die Wochentagsbeschriftung. Teilen Sie die Breite durch sieben Spalten – acht, wenn die Wochennummernspalte aktiviert ist – und die verbleibende Höhe durch die Anzahl der Zeilen. Jede Länge wird bis zur endgültigen Teilung als ganze Zahl von Mikrometern gehalten, sodass durch das zweimalige Subtrahieren eines Randes kein Gleitkomma-Rest zurückbleiben kann.
Vor dem Weiterlesen
Der Februar 2026 hat genau 28 Tage – auf den Tag genau vier Wochen. Wie viele Zeilen benötigt ein Raster, dessen erste Spalte Montag ist?
Fünf. Der Februar 2026 beginnt an einem Sonntag, daher muss ein Montag-Erster-Gitter sechs Zellen frei lassen, bevor der Erste abgelegt werden kann: 6 + 28 = 34 Zellen, was fünf Siebenerreihen erfordert. Verschieben Sie die erste Spalte auf Sonntag und die Leerzeichen verschwinden, der Monat passt in vier Reihen und jedes Kästchen auf dem Blatt wächst von 32,80 mm auf 41,00 mm hoch – ein Viertel höher, auf identischem Papier, von einem Steuerelement, das wie eine Präferenz aussieht.
blanks = (0 for Sunday - 1 for Monday + 7) mod 7 = 6Der Abstand von der ersten Spalte bis zum Wochentag, an dem der Monat beginnt. Die + 7 ist vorhanden, sodass das Modulo niemals ein Negativ sieht.
cells = 6 + 28 = 34Leerzeichen plus die Länge des Monats. Dies ist der einzige Ort, an dem sich die beiden Zahlen treffen.
rows = ceil(34 / 7) = 5Und nach dem 28. bleibt eine Zelle leer, da 5 x 7 35 ergibt.
Feldhöhe = (210 - 24 - 22) / 5 = 32,80 mmA4 Querformat abzüglich zweimal 12 mm Rand, abzüglich 22 mm reserviert über dem Raster, geteilt durch die Reihen. Bis zu dieser Teilung wird alles in ganzen Mikrometern gehalten.
Ein gelungenes Beispiel
Februar 2026, Woche ab Montag, Namen in Englisch (Vereinigtes Königreich), A4-Querformat, 12 mm Rand und 22 mm reserviert über dem Raster:
heading February 2026
the 1st falls on Sunday, in column 7
days 28
blank cells 6 before, 1 after
rows 5
printable area 273.00 x 186.00 mm
grid area 273.00 x 164.00 mm (186 less the 22 mm heading)
day box 39.00 x 32.80 mm
ISO weeks 5 through 9
Die arithmetische Prüfung per Hand in beide Richtungen:
| Figur | Arithmetik | Ergebnis |
|---|---|---|
| Leere Zellen vor dem 1 | (0 für Sonntag − 1 für Montag + 7) Mod 7 | 6 |
| Zellen im Raster | 6 + 28 | 34 |
| Reihen | Decke(34 ÷ 7) | 5 |
| Leere Zellen nach dem 28 | 5 × 7 − 34 | 1 |
| Kastenbreite | (297 − 24) ÷ 7 | 39,00 mm |
| Kastenhöhe | (210 − 24 − 22) ÷ 5 | 32,80 mm |
Beide Unterteilungen werden hier exakt angezeigt, was ein Zufall von A4 und diesen Rändern ist und nicht irgendetwas, das das Tool anordnet.
Ändern Sie ein Steuerelement und das Blatt ändert seine Form. Da die Woche stattdessen am Sonntag beginnt, hat derselbe Monat keine führenden Leerzeichen, passt in vier Reihen und die Kastenhöhe reicht von 32,80 mm auf 41,00 mm – ein Viertel höher, auf identischem Papier. Im August 2026 ist das umgekehrt der Fall: 31 Tage, die an einem Samstag beginnen, sind fünf Leerzeichen plus 31, also 36 Zellen und sechs Reihen, und die Kästchen reduzieren sich auf 27,33 mm.
Dies sind die gleichen Zahlen, die in der Testdatei dieses Tools angegeben sind. Wenn sich also die Formel jemals ändert, ohne dass sich diese Seite mit ändert, schlägt der Build fehl. Die Wochentags- und ISO-Wochenarithmetik wird dort auch auf eine zweite Art und Weise anhand separater Date-basierter Implementierungen überprüft, und zwar an jedem Monat von 1600 bis 2400 und an jedem einzelnen Tag jedes Monats über einen vollständigen Schaltzyklus hinweg.
Was es nicht tut
Der Kalender wird nicht gezeichnet. Sie erhalten die Geometrie und die vollständige Datumstabelle – jeden Tag mit seiner Zeile, seiner Spalte, seinem Wochentagsnamen und seiner ISO-Wochennummer – die als CSV heruntergeladen werden, und das reicht aus, um das Blatt in einem Zeichenprogramm, einer Tabellenkalkulation oder einem Stylesheet genau anzuordnen. Es handelt sich nicht um eine fertige Seite, die an einen Drucker gesendet werden kann.
Es modelliert auch einen Kalender und nicht die vielen Dinge, die Leute auf einen legen. Es gibt keine gesetzlichen Feiertage, keine Mondphasen, keine Wochennummerierung im Monat, keine führenden oder nachgestellten Tage der benachbarten Monate, die in den leeren Zellen ausgegraut sind, und keine Vorkehrungen für die schmaleren Wochenend- oder Wochennummernspalten, die ein gedruckter Kalender oft verwendet. Jede Box hat die gleiche Größe, das ist das einzige Layout, das genau angegeben werden kann und nicht durch eine Konvention, über die sich niemand einig ist.
Und es weiß nichts über Ihren Drucker. Bei den Papierformaten handelt es sich um beschnittene Formate, sodass der Hardware-Rand, den ein Desktop-Drucker physisch nicht erreichen kann, nicht abgezogen wird und auch die Skalierung eines Druckdialogs nicht angewendet wird, es sei denn, Sie schalten sie aus. Beide befinden sich auf der anderen Seite dieser Seite, und beide sorgen still und leise dafür, dass das gedruckte Blatt mit jedem Millimeter darüber nicht mehr übereinstimmt.
Es zählt auch für Sie nichts. Für die Anzahl der Arbeitstage in einem Zeitraum handelt es sich nicht um ein Raster, in das sie eingeschrieben werden, sondern um eine Arithmetik an zwei Daten und nicht um ein Layoutproblem.
Die Formel
daysInMonth = 29 für Februar im Schaltjahr, sonst 28;
30 für April, Juni, September und November;
31 für die übrigen Monate.
Schaltjahr = year mod 4 = 0 und (year mod 100 != 0 oder year mod 400 = 0)
firstColumn = 0 bei Wochenbeginn Sonntag, 1 bei Montag, 6 bei Samstag
leadingBlanks = (weekdayOfThe1st - firstColumn + 7) mod 7
cells = leadingBlanks + daysInMonth
rows = ceil(cells / 7)
trailingBlanks = rows x 7 - cells
Für Tag d:
offset = leadingBlanks + d - 1
row = floor(offset / 7) + 1
column = (offset mod 7) + 1
ISO-8601-Wochen laufen von Montag bis Sonntag; Woche 1 enthält den ersten Donnerstag.
isoWeekday = 1 für Montag … 7 für Sonntag
thursday = dayNumber + (4 - isoWeekday)
weekYear = Kalenderjahr dieses Donnerstags
isoWeek = floor((thursday - 1. Januar von weekYear) / 7) + 1
Bei Wochennummern gibt es 8 Spalten, sonst 7.
Alle Längen bleiben bis zur letzten Division ganze Mikrometer.
Wovon es ausgeht
- Die Daten werden im proleptischen gregorianischen Kalender für jedes Jahr ab 1583 berechnet, weshalb dies das früheste angebotene Jahr ist. Großbritannien und seine Kolonien behielten den julianischen Kalender bis September 1752 bei, so dass dieses Tool bis dahin einen Monat lang nicht mit dem damals tatsächlich verwendeten Kalender übereinstimmte – um zehn Tage im Jahr 1583 und um elf Tage im Jahr 1752.
- Der Tag, an dem die Woche beginnt, wird explizit ausgewählt und nicht aus der Sprache abgeleitet. CLDR zeichnet zwar einen ersten Tag pro Gebiet auf, ist aber auf die Region und nicht auf die Sprache ausgerichtet, sodass „Französisch“ allein die Frage nicht beantwortet – und die Einstellung ändert die Zeilenanzahl, was eine falsche Schätzung eher zu einem kosmetischen Fehler macht.
- ISO-Wochenzahlen zählen immer von Montag bis Sonntag, unabhängig davon, an welchem Tag das Raster beginnt. Ein Kalender mit Sonntagsbeginn zeigt daher in der ersten Zeile eine Wochennummer für eine Woche an, die am Tag vor dieser Zeile begann.
- Jede Spalte hat die gleiche Breite und jede Zeile die gleiche Höhe, einschließlich der Spalte mit den Wochennummern, wenn sie eingeschaltet ist. Gedruckte Kalender schränken häufig die Spalte mit der Wochennummer oder dem Wochenende ein, und keine dieser Konventionen ist standardisiert genug, um sie zu berechnen.
- Papierformate sind beschnittene Formate. Der Hardware-Rand Ihres Druckers, der normalerweise 4 bis 6 mm beträgt und an der Hinterkante oft breiter ist, wird nicht abgezogen, sodass ein Rand unter etwa 5 mm vom Drucker und nicht von irgendetwas hier abgeschnitten wird.
- Monats- und Wochentagsnamen stammen aus den Gebietsschemadaten, die in den Browser integriert sind, der diese Seite liest. Eine abgespeckte Version dieser Daten, die einige eingebettete und selbst kompilierte Laufzeiten liefern, greift ohne Angabe von Gründen auf Englisch zurück.
Fragen
Warum benötigt mein Kalender manchmal sechs Zeilen?
Denn das Raster muss die leeren Zellen vor dem 1. sowie die Tage selbst enthalten, und sobald die Gesamtzahl 35 überschreitet, geht sie in eine sechste Zeile über. Nur ein 31-Tage-Monat, der in der sechsten oder siebten Spalte beginnt, oder ein 30-Tage-Monat, der in der siebten Spalte beginnt, kann dies schaffen. Das kommt in den meisten Jahren zwei- oder dreimal vor, und diese Blätter unterscheiden sich sichtbar von den anderen, weil jede Kiste etwa ein Sechstel ihrer Höhe verliert.
Soll die Woche am Montag oder Sonntag beginnen?
Es handelt sich eher um eine regionale Konvention als um eine richtige Antwort. Der Montag ist in den meisten Teilen Europas die Norm und entspricht der Wochennummerierung nach ISO 8601; Der Sonntag ist in den Vereinigten Staaten, Kanada und Japan die Norm; Samstag ist in weiten Teilen des Nahen Ostens üblich. Wichtig für den Ausdruck ist, dass die Auswahl jedes Datum um eine Spalte verschiebt und eine ganze Zeile hinzufügen oder entfernen kann: Februar 2026 besteht aus fünf Zeilen, die am Montag beginnen, und vier, die am Sonntag beginnen.
Warum ist die Wochennummer Anfang Januar 52 oder 53?
Denn ISO 8601 zählt Wochen, nicht Tage, und eine Woche gehört zu dem Jahr, in dem es seinen Donnerstag hat. Der 1. Januar 2027 ist ein Freitag, daher begann die Woche, in der er liegt, am Montag, dem 28. Dezember 2026, und ist daher Woche 53 von 2026, nicht Woche 1 von 2027. Die gleiche Regel gilt auch umgekehrt: Der 29. Dezember 2025 ist ein Montag, daher sind die letzten drei Tage von 2025 bereits Woche 1 von 2026.
Wird mein Kalender irgendwo hochgeladen?
Nein. Die Berechnung wird in diesem Browser-Tab ausgeführt und es gibt keinen Server, an den sie gesendet werden kann. Die Monats- und Wochentagsnamen stammen aus Gebietsschemadaten, die bereits Teil Ihres Browsers sind, sodass auch nichts abgerufen wird, um sie zu erzeugen.
Zeichnet das den Kalender?
Noch nicht. Sie erhalten das vollständige Layout – die Zeilenanzahl, die Boxgrößen auf den Hundertstelmillimeter genau und eine Tabelle jedes Datums mit der Zeile, Spalte und ISO-Woche, zu der es gehört, die als CSV heruntergeladen wird. Das reicht aus, um das Blatt in einem Zeichenprogramm, einer Tabellenkalkulation oder einem Stylesheet zu erstellen, aber es ist keine fertige Seite, die Sie direkt an einen Drucker senden können.
Warum ist das gedruckte Blatt kleiner als die hier angegebenen Zahlen?
Fast immer, weil es skaliert wurde. Druckdialoge passen die Seite standardmäßig an den druckbaren Bereich an, wodurch alles um zwei bis drei Prozent verkleinert wird. Stellen Sie den Maßstab auf 100 % oder „Tatsächliche Größe“ ein und deaktivieren Sie „An Seite anpassen“. Am schnellsten lässt sich das überprüfen, indem man ein Lineal über alle sieben Spalten legt: Bei einem A4-Querformat mit 12 mm Rand sollten sie insgesamt 273 mm messen.