Erster und letzter Tag des Jahres
Zum 15. Juni 2024 reicht das Jahr vom 2024-01-01 bis zum 2024-12-31 und hat 366 Tage, weil es ein Schaltjahr ist. Nutzen Sie beide Daten als fertige Grenzen für Jahresberichte, Filter, Archivordner oder Aufbewahrungsregeln. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Datum
- 2024-06-15
- Jahr
- 2.024
- Erster Tag
- 2024-01-01
- Letzter Tag
- 2024-12-31
- Tage im Jahr
- 366
Dieser Rechner übernimmt ein ausdrücklich angegebenes ISO-Datum und liefert die beiden einschließenden Grenzen desselben Kalenderjahres. Er hilft bei Berichten, Filtern, Archiven und Prüfregeln, die den 1. Januar und 31. Dezember benötigen, ohne die aktuelle Uhrzeit abzufragen. Vor der Ausgabe wird geprüft, ob die Eingabe ein echtes gregorianisches Datum ist; dabei gelten auch die Jahrhundertregeln für Schaltjahre. Die Verarbeitung verwendet feste Zeichenkettenanalyse und Ganzzahlarithmetik statt des JavaScript-Objekts Date. Serverzeitzone, Sommerzeit, Gebietsschema und Ausführungszeitpunkt ändern das Ergebnis daher nicht. Die Antwort nennt außerdem das Jahr, den Schaltjahrstatus und die Gesamtzahl seiner Tage.
So werden die Jahresgrenzen bestimmt
Geben Sie ein Datum mit genau vier Jahres-, zwei Monats- und zwei Tagesziffern ein, jeweils durch Bindestriche getrennt. Der Rechner zerlegt und prüft diese Bestandteile nach dem proleptischen gregorianischen Kalender. Der Monat muss zwischen 01 und 12 liegen; der erlaubte Tag hängt von Monat und Jahr ab.
Der Februar hat 29 Tage, wenn das Jahr durch vier teilbar ist, wobei Jahrhundertjahre zusätzlich durch vierhundert teilbar sein müssen. Deshalb ist 2000 ein Schaltjahr, 1900 keines und 2024 eines. Nach erfolgreicher Prüfung wird nur noch die Jahreszahl benötigt.
Der erste einschließende Tag besteht aus dem vierstelligen Jahr und 01-01, der letzte aus demselben Jahr und 12-31. Auch im Schaltjahr bleiben diese Grenzen unverändert, da der zusätzliche Tag im Februar liegt. Sie fragt nie das heutige Datum ab und vermeidet Date vollständig.
Daher erzeugen UTC-Server, lokaler Browser und Edge-Worker dieselben ISO-Zeichenketten. Der Aufwand ist konstant und ohne externe Aufrufe.
Eingabeprüfung und Antwortfelder
Senden Sie ein Objekt mit dem Pflichtfeld date, beispielsweise 2024-06-15. Die Syntax ist bewusst streng: verkürzte Monate wie 2024-6-15, Schrägstriche, Zeitstempel, umgebende Leerzeichen und lokalisierte Datumsangaben werden abgewiesen. So kann derselbe Text nicht auf zwei Geräten unterschiedlich gedeutet werden.
Ebenfalls ungültig sind Monat null, Monat dreizehn, der 31. April, der 30. Februar und der 29.
Februar eines gewöhnlichen Jahres. Gespeicherte Anfragen und historische Läufe bleiben dadurch langfristig reproduzierbar.
Kalenderjahresgrenzen sicher verwenden
Kalenderjahresgrenzen eignen sich für jährliche Datenbankabfragen, Berichtszeiträume, Dokumentordner, Aufbewahrungskennzeichen und Standardwerte von Datumsauswahlen. Benötigt ein anderes System Zeitstempel, wenden Sie dessen Zeitzonenregel anschließend ausdrücklich an. Für halboffene Zeitbereiche wird häufig der erste Tag als einschließende Untergrenze verwendet und der 1.
Januar des Folgejahres separat als ausschließende Obergrenze berechnet. Diese Fähigkeit gibt absichtlich den tatsächlichen letzten Kalendertag zurück, weil dies für menschliche Pläne verständlicher ist. Geschäftsjahre, Schuljahre, rollierende Zwölfmonatszeiträume, Arbeitstage und das aktuelle Jahr werden nicht berechnet; sie benötigen zusätzliche Regeln.
Für Tests eignen sich Daten am 29. Februar, an Jahrhundertgrenzen, am 1. Januar und am 31.
Anwendungsfälle
Filter für Jahresberichte
Wandeln Sie datierte Buchungen in einschließende Grenzen vom 1. Januar bis 31. Dezember für konsistente Jahresabfragen um.
Benennung von Archiven und Ordnern
Leiten Sie stabile Jahresgrenzen aus einem Datensatzdatum ab, unabhängig vom aktuellen Jahr und der Zeitzone des Geräts.
Kalender-Regressionsprüfungen
Erzeugen Sie vorhersehbare Grenzen und Schaltjahrdaten für gewöhnliche Jahre, Schaltjahre und Jahrhundertausnahmen.
Häufige Fragen
Verwendet der Rechner das aktuelle Jahr?
Nein. Sie müssen ein ausdrückliches ISO-Datum angeben; ausschließlich dessen Jahr wird verwendet, sodass die aktuelle Uhr keinen Einfluss hat.
Welches Datumsformat ist erforderlich?
Verwenden Sie strikt YYYY-MM-DD mit fester Stellenzahl, etwa 2024-06-15. Zeitstempel, Schrägstriche, verkürzte Bestandteile und unmögliche Daten werden abgewiesen.
Sind der erste und letzte Tag eingeschlossen?
Dezember des eingegebenen Kalenderjahres; beide gehören zu diesem Jahr.
Ändert ein Schaltjahr die ausgegebenen Grenzen?
Nein. Es fügt den 29. Februar zwischen ihnen ein. Die Grenzen bleiben 1. Januar und 31.
Wie verwende ich diese Daten mit genauen Uhrzeiten?
Behandeln Sie sie als Kalendertage, nicht als Zeitpunkte, und wenden Sie Ihre eigene Zeitzonenregel an. Brauchen Sie einen Bereich, der kurz vor dem Folgejahr endet, nehmen Sie den 1. Januar des Folgejahres als Ende.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/date/year-start-end \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-06-15"}'const res = await fetch("https://api.kit.forhosting.com/date/year-start-end", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-06-15"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/year-start-end",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-06-15"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/year-start-end", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-06-15"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-06-15"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/year-start-end", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"date": "2024-06-15"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.year_start_end",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
So werden die Jahresgrenzen bestimmt
Die Berechnung setzt days_in_year auf 365 oder 366 und liefert is_leap_year.
Eingabeprüfung und Antwortfelder
Bei Erfolg wird das geprüfte Datum wiederholt und year als Ganzzahl ausgegeben. first_day und last_day sind einschließende ISO-Kalenderdaten für Bereichsfilter. is_leap_year und days_in_year unterstützen Jahrespläne und die Kontrolle der Schaltjahrbehandlung. Fehlerhafte Eingaben führen zu invalid_input mit kurzer Erklärung, statt unbemerkt in einen anderen Monat überzulaufen. Das Datum ist stets ausdrücklich erforderlich und wird bei Fehlen nie durch heute ersetzt. Browser und API verwenden dieselbe reine solve-Funktion.
Kalenderjahresgrenzen sicher verwenden
Behandeln Sie first_day und last_day als bürgerliche Daten, nicht als Zeitpunkte. Dezember. Eine erfolgreiche API-Anfrage kostet $0.002 je Element; im Browser läuft dieselbe reine Berechnung kostenlos. Ohne Netzwerk, Uhr, Zufall oder verborgenen Gebietszustand erzeugt dieselbe Eingabe immer dasselbe JSON.
Technische Fragen
Was kostet eine API-Anfrage?
Eine erfolgreiche API-Anfrage kostet $0.002 je Element. Die Browserfassung führt dieselbe deterministische Berechnung lokal kostenlos aus.