{"id":238,"date":"2026-03-05T11:33:12","date_gmt":"2026-03-05T11:33:12","guid":{"rendered":"https:\/\/kalenderwoche.info\/blog\/?page_id=238"},"modified":"2026-03-05T11:34:41","modified_gmt":"2026-03-05T11:34:41","slug":"alter-in-monaten","status":"publish","type":"page","link":"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/","title":{"rendered":"Alter in Monaten Rechner"},"content":{"rendered":"\n<section id=\"tool__alter-in-monaten-rechner\" aria-label=\"Alter in Monaten Rechner\">\n  <style>\n    #tool__alter-in-monaten-rechner{--bg:#ffffff;--surface:#f6f7f8;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--danger:#b91c1c;--ok:#065f46;--focus:#1f2937;--radius:14px;--pad:16px;max-width:720px;margin:0 auto;color:var(--text);font:inherit}\n    #tool__alter-in-monaten-rechner *{box-sizing:border-box}\n    #tool__alter-in-monaten-rechner .t-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(14px,2.2vw,var(--pad))}\n    #tool__alter-in-monaten-rechner .t-head{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}\n    #tool__alter-in-monaten-rechner .t-title{margin:0;font-size:1.25rem;line-height:1.25}\n    #tool__alter-in-monaten-rechner .t-sub{margin:0;color:var(--muted);font-size:.95rem;line-height:1.35}\n    #tool__alter-in-monaten-rechner .t-form{display:grid;gap:12px}\n    #tool__alter-in-monaten-rechner .t-grid{display:grid;gap:12px}\n    @media (min-width:640px){\n      #tool__alter-in-monaten-rechner .t-grid{grid-template-columns:1fr 1fr}\n    }\n    #tool__alter-in-monaten-rechner .t-field{display:flex;flex-direction:column;gap:6px}\n    #tool__alter-in-monaten-rechner label{font-size:.95rem;font-weight:600}\n    #tool__alter-in-monaten-rechner .t-help{color:var(--muted);font-size:.9rem;line-height:1.35}\n    #tool__alter-in-monaten-rechner input[type=\"date\"]{width:100%;appearance:none;-webkit-appearance:none;border:1px solid var(--border);border-radius:12px;padding:12px 12px;font:inherit;background:#fff;color:var(--text);min-height:44px}\n    #tool__alter-in-monaten-rechner input[type=\"date\"]:focus{outline:3px solid rgba(31,41,55,.18);border-color:var(--focus)}\n    #tool__alter-in-monaten-rechner .t-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}\n    #tool__alter-in-monaten-rechner .t-actions{display:flex;gap:10px;flex-wrap:wrap}\n    #tool__alter-in-monaten-rechner button{appearance:none;border:1px solid var(--border);border-radius:12px;padding:11px 14px;font:inherit;font-weight:600;background:var(--surface);color:var(--text);min-height:44px;cursor:pointer}\n    #tool__alter-in-monaten-rechner button:hover{filter:brightness(0.98)}\n    #tool__alter-in-monaten-rechner button:active{transform:translateY(1px)}\n    #tool__alter-in-monaten-rechner button:focus{outline:3px solid rgba(31,41,55,.18);border-color:var(--focus)}\n    #tool__alter-in-monaten-rechner .t-primary{background:#111827;color:#fff;border-color:#111827}\n    #tool__alter-in-monaten-rechner .t-primary:hover{filter:brightness(1.06)}\n    #tool__alter-in-monaten-rechner .t-ghost{background:#fff}\n    #tool__alter-in-monaten-rechner .t-toggle{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:#fff}\n    #tool__alter-in-monaten-rechner .t-toggle input{margin-top:3px}\n    #tool__alter-in-monaten-rechner .t-toggle strong{display:block;font-size:.95rem}\n    #tool__alter-in-monaten-rechner .t-toggle span{display:block;color:var(--muted);font-size:.9rem;line-height:1.35}\n    #tool__alter-in-monaten-rechner .t-msg{margin:6px 0 0 0;font-size:.95rem;line-height:1.35}\n    #tool__alter-in-monaten-rechner .t-msg[hidden]{display:none}\n    #tool__alter-in-monaten-rechner .t-error{color:var(--danger)}\n    #tool__alter-in-monaten-rechner .t-result{margin-top:14px;border-top:1px solid var(--border);padding-top:14px;display:grid;gap:10px}\n    #tool__alter-in-monaten-rechner .t-rescard{border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:12px}\n    #tool__alter-in-monaten-rechner .t-resline{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;justify-content:space-between}\n    #tool__alter-in-monaten-rechner .t-reslabel{color:var(--muted);font-size:.9rem}\n    #tool__alter-in-monaten-rechner .t-resvalue{font-size:1.25rem;font-weight:800;letter-spacing:.2px}\n    #tool__alter-in-monaten-rechner .t-kv{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}\n    @media (min-width:640px){\n      #tool__alter-in-monaten-rechner .t-kv{grid-template-columns:repeat(3,1fr)}\n    }\n    #tool__alter-in-monaten-rechner .t-kv > div{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px}\n    #tool__alter-in-monaten-rechner .t-kv .k{color:var(--muted);font-size:.85rem;margin:0}\n    #tool__alter-in-monaten-rechner .t-kv .v{margin:2px 0 0 0;font-weight:800}\n    #tool__alter-in-monaten-rechner .t-note{color:var(--muted);font-size:.92rem;line-height:1.45;margin:0}\n    #tool__alter-in-monaten-rechner .t-content{margin-top:16px}\n    #tool__alter-in-monaten-rechner .t-content h3{margin:0 0 8px 0;font-size:1.1rem}\n    #tool__alter-in-monaten-rechner .t-content p{margin:0 0 10px 0;line-height:1.6}\n    #tool__alter-in-monaten-rechner details{border:1px solid var(--border);border-radius:12px;background:#fff;padding:10px 12px}\n    #tool__alter-in-monaten-rechner details + details{margin-top:10px}\n    #tool__alter-in-monaten-rechner summary{cursor:pointer;font-weight:700;outline:none}\n    #tool__alter-in-monaten-rechner summary:focus{outline:3px solid rgba(31,41,55,.18);border-radius:10px}\n    #tool__alter-in-monaten-rechner .t-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n  <\/style>\n\n  <div class=\"t-card\">\n    <header class=\"t-head\">\n      <h2 class=\"t-title\">Alter in Monaten Rechner<\/h2>\n      <p class=\"t-sub\">Berechnen Sie Ihr Alter (oder ein anderes Alter) als vollst\u00e4ndige Monate \u2013 optional mit Stichtag.<\/p>\n    <\/header>\n\n    <form class=\"t-form\" id=\"tool__alter-in-monaten-rechner__form\" novalidate>\n      <div class=\"t-grid\">\n        <div class=\"t-field\">\n          <label for=\"tool__alter-in-monaten-rechner__birth\">Geburtsdatum<\/label>\n          <input id=\"tool__alter-in-monaten-rechner__birth\" name=\"birth\" type=\"date\" inputmode=\"numeric\" autocomplete=\"bday\" required aria-describedby=\"tool__alter-in-monaten-rechner__birth_help\" \/>\n          <div class=\"t-help\" id=\"tool__alter-in-monaten-rechner__birth_help\">Pflichtfeld. Das Datum muss vor oder am Stichtag liegen.<\/div>\n        <\/div>\n\n        <div class=\"t-field\">\n          <label for=\"tool__alter-in-monaten-rechner__asof\">Stichtag<\/label>\n          <input id=\"tool__alter-in-monaten-rechner__asof\" name=\"asof\" type=\"date\" inputmode=\"numeric\" autocomplete=\"off\" aria-describedby=\"tool__alter-in-monaten-rechner__asof_help\" \/>\n          <div class=\"t-help\" id=\"tool__alter-in-monaten-rechner__asof_help\">Optional. Leer = heute. Sie k\u00f6nnen auch \u201eHeute setzen\u201c nutzen.<\/div>\n        <\/div>\n      <\/div>\n\n      <div class=\"t-row\">\n        <div class=\"t-actions\">\n          <button type=\"submit\" class=\"t-primary\" id=\"tool__alter-in-monaten-rechner__calc\">Berechnen<\/button>\n          <button type=\"button\" class=\"t-ghost\" id=\"tool__alter-in-monaten-rechner__today\">Heute setzen<\/button>\n          <button type=\"button\" id=\"tool__alter-in-monaten-rechner__reset\">Zur\u00fccksetzen<\/button>\n        <\/div>\n\n        <label class=\"t-toggle\" for=\"tool__alter-in-monaten-rechner__remember\">\n          <input id=\"tool__alter-in-monaten-rechner__remember\" type=\"checkbox\" \/>\n          <span>\n            <strong>Eingaben merken<\/strong>\n            <span>Speichert Geburtsdatum &amp; Stichtag lokal auf diesem Ger\u00e4t.<\/span>\n          <\/span>\n        <\/label>\n      <\/div>\n\n      <p class=\"t-msg t-error\" id=\"tool__alter-in-monaten-rechner__error\" role=\"alert\" aria-live=\"polite\" hidden><\/p>\n\n      <section class=\"t-result\" aria-label=\"Ergebnis\">\n        <div class=\"t-rescard\">\n          <div class=\"t-resline\">\n            <div>\n              <div class=\"t-reslabel\">Gesamtalter<\/div>\n              <div class=\"t-resvalue\" id=\"tool__alter-in-monaten-rechner__months\" aria-live=\"polite\">\u2014<\/div>\n            <\/div>\n            <button type=\"button\" id=\"tool__alter-in-monaten-rechner__copy\" disabled aria-describedby=\"tool__alter-in-monaten-rechner__copy_hint\">Kopieren<\/button>\n          <\/div>\n          <div class=\"t-kv\" aria-label=\"Details\">\n            <div>\n              <p class=\"k\">Jahre<\/p>\n              <p class=\"v\" id=\"tool__alter-in-monaten-rechner__years\">\u2014<\/p>\n            <\/div>\n            <div>\n              <p class=\"k\">Zus\u00e4tzliche Monate<\/p>\n              <p class=\"v\" id=\"tool__alter-in-monaten-rechner__remMonths\">\u2014<\/p>\n            <\/div>\n            <div>\n              <p class=\"k\">Tage seit Monatswechsel<\/p>\n              <p class=\"v\" id=\"tool__alter-in-monaten-rechner__days\">\u2014<\/p>\n            <\/div>\n          <\/div>\n          <p class=\"t-note\" id=\"tool__alter-in-monaten-rechner__meta\">\u2014<\/p>\n          <span class=\"t-sr\" id=\"tool__alter-in-monaten-rechner__copy_hint\">Kopiert das Ergebnis in die Zwischenablage.<\/span>\n        <\/div>\n      <\/section>\n    <\/form>\n\n    <div class=\"t-content\">\n      <h3>So wird das Alter in Monaten berechnet<\/h3>\n      <p>Dieser Rechner ermittelt Ihr Alter als <strong>vollst\u00e4ndige Monate<\/strong> zwischen Geburtsdatum und einem Stichtag. Wenn Sie keinen Stichtag angeben, wird automatisch das heutige Datum verwendet. Gez\u00e4hlt werden nur ganze Monate: Der Monat ist erst dann \u201evoll\u201c, wenn der entsprechende Kalendertag erreicht ist. F\u00e4llt der Stichtag in einem Monat vor den Geburtstagstag (z.&nbsp;B. Geburt am 20., Stichtag am 10.), wird der angefangene Monat nicht mitgez\u00e4hlt. Zus\u00e4tzlich zeigt das Tool die Aufteilung in Jahre und Restmonate sowie die Tage seit dem letzten Monatswechsel. Das ist praktisch, wenn Sie Fristen, Entwicklungsst\u00e4nde oder Altersgrenzen schnell und nachvollziehbar pr\u00fcfen m\u00f6chten. Alle Eingaben werden direkt validiert, damit keine unklaren Zust\u00e4nde entstehen. Optional k\u00f6nnen Sie die letzten Werte lokal speichern \u2013 ohne externe Dienste.<\/p>\n\n      <details>\n        <summary>Warum unterscheidet sich das Ergebnis von \u201eTage \u00f7 30\u201c?<\/summary>\n        <p>Monate sind unterschiedlich lang. Dieser Rechner nutzt Kalenderlogik (ganze Monate), statt mit Durchschnittswerten zu sch\u00e4tzen.<\/p>\n      <\/details>\n      <details>\n        <summary>Wie werden \u201evollst\u00e4ndige Monate\u201c genau gez\u00e4hlt?<\/summary>\n        <p>Vom Startdatum wird Monat f\u00fcr Monat vorgez\u00e4hlt. Ist der Stichtag vor dem entsprechenden Kalendertag, z\u00e4hlt der laufende Monat noch nicht.<\/p>\n      <\/details>\n      <details>\n        <summary>Was passiert bei Schaltjahren und unterschiedlichen Monatsl\u00e4ngen?<\/summary>\n        <p>Das wird automatisch korrekt ber\u00fccksichtigt, weil die Berechnung auf echten Kalenderdaten basiert.<\/p>\n      <\/details>\n      <details>\n        <summary>Werden meine Daten irgendwohin \u00fcbertragen?<\/summary>\n        <p>Nein. Optionales Speichern erfolgt nur lokal in Ihrem Browser (auf diesem Ger\u00e4t). Sie k\u00f6nnen es jederzeit deaktivieren oder zur\u00fccksetzen.<\/p>\n      <\/details>\n    <\/div>\n  <\/div>\n\n  <script>\n    (() => {\n      'use strict';\n\n      const ROOT = document.getElementById('tool__alter-in-monaten-rechner');\n      if (!ROOT) return;\n\n      const els = {\n        form: ROOT.querySelector('#tool__alter-in-monaten-rechner__form'),\n        birth: ROOT.querySelector('#tool__alter-in-monaten-rechner__birth'),\n        asof: ROOT.querySelector('#tool__alter-in-monaten-rechner__asof'),\n        todayBtn: ROOT.querySelector('#tool__alter-in-monaten-rechner__today'),\n        resetBtn: ROOT.querySelector('#tool__alter-in-monaten-rechner__reset'),\n        error: ROOT.querySelector('#tool__alter-in-monaten-rechner__error'),\n        months: ROOT.querySelector('#tool__alter-in-monaten-rechner__months'),\n        years: ROOT.querySelector('#tool__alter-in-monaten-rechner__years'),\n        remMonths: ROOT.querySelector('#tool__alter-in-monaten-rechner__remMonths'),\n        days: ROOT.querySelector('#tool__alter-in-monaten-rechner__days'),\n        meta: ROOT.querySelector('#tool__alter-in-monaten-rechner__meta'),\n        copyBtn: ROOT.querySelector('#tool__alter-in-monaten-rechner__copy'),\n        remember: ROOT.querySelector('#tool__alter-in-monaten-rechner__remember')\n      };\n\n      const STORAGE_KEY = 'tool__alter_in_monaten_rechner_v1';\n      const dtf = new Intl.DateTimeFormat('de-DE', { year: 'numeric', month: '2-digit', day: '2-digit' });\n\n      const clampInt = (n, min, max) => Math.min(max, Math.max(min, n));\n\n      const toIsoDate = (d) => {\n        const y = d.getFullYear();\n        const m = String(d.getMonth() + 1).padStart(2, '0');\n        const day = String(d.getDate()).padStart(2, '0');\n        return `${y}-${m}-${day}`;\n      };\n\n      const parseDateStrict = (iso) => {\n        if (typeof iso !== 'string' || iso.length !== 10) return null;\n        if (!\/^\\d{4}-\\d{2}-\\d{2}$\/.test(iso)) return null;\n        const y = Number(iso.slice(0, 4));\n        const m = Number(iso.slice(5, 7));\n        const d = Number(iso.slice(8, 10));\n        if (!Number.isInteger(y) || !Number.isInteger(m) || !Number.isInteger(d)) return null;\n        if (y < 1900 || y > 9999) return null;\n        if (m < 1 || m > 12) return null;\n        if (d < 1 || d > 31) return null;\n\n        const date = new Date(Date.UTC(y, m - 1, d));\n        if (date.getUTCFullYear() !== y || (date.getUTCMonth() + 1) !== m || date.getUTCDate() !== d) return null;\n\n        return new Date(y, m - 1, d);\n      };\n\n      const startOfDay = (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate());\n\n      const daysInMonth = (y, m0) => new Date(y, m0 + 1, 0).getDate();\n\n      const addMonthsClampDay = (d, monthsToAdd) => {\n        const y = d.getFullYear();\n        const m0 = d.getMonth();\n        const day = d.getDate();\n        const targetM = m0 + monthsToAdd;\n        const ty = y + Math.floor(targetM \/ 12);\n        const tm0 = ((targetM % 12) + 12) % 12;\n        const dim = daysInMonth(ty, tm0);\n        const td = Math.min(day, dim);\n        return new Date(ty, tm0, td);\n      };\n\n      const calcAgeInCalendarMonths = (birth, asof) => {\n        const b = startOfDay(birth);\n        const a = startOfDay(asof);\n\n        let months = (a.getFullYear() - b.getFullYear()) * 12 + (a.getMonth() - b.getMonth());\n        const anchor = addMonthsClampDay(b, months);\n\n        if (anchor > a) {\n          months -= 1;\n        } else {\n          const next = addMonthsClampDay(b, months + 1);\n          if (next <= a) months += 1;\n        }\n\n        months = clampInt(months, 0, 120000);\n        const years = Math.floor(months \/ 12);\n        const remMonths = months % 12;\n\n        const lastMonthMark = addMonthsClampDay(b, months);\n        const msPerDay = 24 * 60 * 60 * 1000;\n        const days = Math.max(0, Math.round((startOfDay(a) - startOfDay(lastMonthMark)) \/ msPerDay));\n\n        return { months, years, remMonths, days, lastMonthMark };\n      };\n\n      const formatDateDE = (d) => dtf.format(d);\n\n      const buildCopyText = (birth, asof, r) => {\n        const mWord = r.months === 1 ? 'Monat' : 'Monate';\n        const yWord = r.years === 1 ? 'Jahr' : 'Jahre';\n        const rmWord = r.remMonths === 1 ? 'Monat' : 'Monate';\n        return `${r.months} ${mWord} (${r.years} ${yWord}, ${r.remMonths} ${rmWord}) \u2013 von ${formatDateDE(birth)} bis ${formatDateDE(asof)}`;\n      };\n\n      const state = {\n        birthIso: '',\n        asofIso: '',\n        remember: false,\n        result: null,\n        error: ''\n      };\n\n      const setError = (msg) => {\n        state.error = msg || '';\n      };\n\n      const validate = () => {\n        setError('');\n\n        const birthIso = (els.birth.value || '').trim();\n        const asofIsoRaw = (els.asof.value || '').trim();\n\n        if (!birthIso) {\n          setError('Bitte geben Sie ein Geburtsdatum an.');\n          return null;\n        }\n\n        const birth = parseDateStrict(birthIso);\n        if (!birth) {\n          setError('Das Geburtsdatum ist ung\u00fcltig. Bitte pr\u00fcfen Sie das Format.');\n          return null;\n        }\n\n        const asof = asofIsoRaw ? parseDateStrict(asofIsoRaw) : startOfDay(new Date());\n        if (asofIsoRaw && !asof) {\n          setError('Der Stichtag ist ung\u00fcltig. Bitte pr\u00fcfen Sie das Format.');\n          return null;\n        }\n\n        if (startOfDay(asof) < startOfDay(birth)) {\n          setError('Der Stichtag darf nicht vor dem Geburtsdatum liegen.');\n          return null;\n        }\n\n        return { birth, asof, birthIso, asofIso: asofIsoRaw };\n      };\n\n      const persistMaybe = () => {\n        if (!state.remember) return;\n        try {\n          const payload = {\n            birthIso: state.birthIso || '',\n            asofIso: state.asofIso || '',\n            remember: true\n          };\n          localStorage.setItem(STORAGE_KEY, JSON.stringify(payload));\n        } catch (_) {}\n      };\n\n      const clearPersist = () => {\n        try { localStorage.removeItem(STORAGE_KEY); } catch (_) {}\n      };\n\n      const loadPersist = () => {\n        try {\n          const raw = localStorage.getItem(STORAGE_KEY);\n          if (!raw) return;\n          const obj = JSON.parse(raw);\n          if (!obj || typeof obj !== 'object') return;\n          if (obj.remember !== true) return;\n          if (typeof obj.birthIso === 'string') els.birth.value = obj.birthIso;\n          if (typeof obj.asofIso === 'string') els.asof.value = obj.asofIso;\n          els.remember.checked = true;\n          state.remember = true;\n        } catch (_) {}\n      };\n\n      const render = () => {\n        if (state.error) {\n          els.error.hidden = false;\n          els.error.textContent = state.error;\n        } else {\n          els.error.hidden = true;\n          els.error.textContent = '';\n        }\n\n        const r = state.result;\n        if (!r) {\n          els.months.textContent = '\u2014';\n          els.years.textContent = '\u2014';\n          els.remMonths.textContent = '\u2014';\n          els.days.textContent = '\u2014';\n          els.meta.textContent = '\u2014';\n          els.copyBtn.disabled = true;\n          return;\n        }\n\n        const mWord = r.months === 1 ? 'Monat' : 'Monate';\n        els.months.textContent = `${r.months} ${mWord}`;\n        els.years.textContent = String(r.years);\n        els.remMonths.textContent = String(r.remMonths);\n        els.days.textContent = String(r.days);\n\n        const birth = parseDateStrict(state.birthIso);\n        const asof = state.asofIso ? parseDateStrict(state.asofIso) : startOfDay(new Date());\n        if (birth && asof) {\n          els.meta.textContent = `Zeitraum: ${formatDateDE(birth)} bis ${formatDateDE(asof)} \u00b7 Letzter Monatswechsel: ${formatDateDE(r.lastMonthMark)}`;\n          els.copyBtn.disabled = false;\n        } else {\n          els.meta.textContent = '\u2014';\n          els.copyBtn.disabled = true;\n        }\n      };\n\n      const computeAndRender = () => {\n        const v = validate();\n        if (!v) {\n          state.result = null;\n          render();\n          return;\n        }\n\n        state.birthIso = v.birthIso;\n        state.asofIso = v.asofIso;\n        state.result = calcAgeInCalendarMonths(v.birth, v.asof);\n        setError('');\n        persistMaybe();\n        render();\n      };\n\n      const resetAll = () => {\n        els.birth.value = '';\n        els.asof.value = '';\n        state.birthIso = '';\n        state.asofIso = '';\n        state.result = null;\n        setError('');\n        if (!state.remember) clearPersist();\n        render();\n        els.birth.focus();\n      };\n\n      const setToday = () => {\n        els.asof.value = toIsoDate(new Date());\n        state.asofIso = els.asof.value;\n        if (state.remember) persistMaybe();\n        els.asof.focus();\n      };\n\n      const onCopy = async () => {\n        const r = state.result;\n        if (!r) return;\n\n        const birth = parseDateStrict(state.birthIso);\n        const asof = state.asofIso ? parseDateStrict(state.asofIso) : startOfDay(new Date());\n        if (!birth || !asof) return;\n\n        const text = buildCopyText(birth, asof, r);\n\n        let ok = false;\n        try {\n          if (navigator.clipboard && typeof navigator.clipboard.writeText === 'function') {\n            await navigator.clipboard.writeText(text);\n            ok = true;\n          }\n        } catch (_) {}\n\n        if (!ok) {\n          const ta = document.createElement('textarea');\n          ta.value = text;\n          ta.setAttribute('readonly', 'true');\n          ta.style.position = 'absolute';\n          ta.style.left = '-9999px';\n          ROOT.appendChild(ta);\n          ta.select();\n          try { ok = document.execCommand('copy'); } catch (_) { ok = false; }\n          ROOT.removeChild(ta);\n        }\n\n        if (ok) {\n          els.copyBtn.textContent = 'Kopiert';\n          window.setTimeout(() => { els.copyBtn.textContent = 'Kopieren'; }, 1200);\n        }\n      };\n\n      els.form.addEventListener('submit', (e) => {\n        e.preventDefault();\n        computeAndRender();\n      });\n\n      els.todayBtn.addEventListener('click', () => {\n        setToday();\n      });\n\n      els.resetBtn.addEventListener('click', () => {\n        resetAll();\n      });\n\n      els.copyBtn.addEventListener('click', () => {\n        onCopy();\n      });\n\n      els.remember.addEventListener('change', () => {\n        state.remember = !!els.remember.checked;\n        if (!state.remember) clearPersist();\n        else persistMaybe();\n      });\n\n      ROOT.addEventListener('keydown', (e) => {\n        if (e.key === 'Escape') {\n          e.preventDefault();\n          resetAll();\n        }\n      });\n\n      const onInput = (e) => {\n        const t = e.target;\n        if (t === els.birth || t === els.asof) {\n          if (els.error && !els.error.hidden) {\n            setError('');\n          }\n          if (state.remember) {\n            state.birthIso = (els.birth.value || '').trim();\n            state.asofIso = (els.asof.value || '').trim();\n            persistMaybe();\n          }\n          if (state.result) computeAndRender();\n          else render();\n        }\n      };\n\n      els.birth.addEventListener('input', onInput, { passive: true });\n      els.asof.addEventListener('input', onInput, { passive: true });\n\n      loadPersist();\n      render();\n      if (els.birth.value) computeAndRender();\n    })();\n  <\/script>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Alter in Monaten Rechner Berechnen Sie Ihr Alter (oder ein anderes Alter) als vollst\u00e4ndige Monate \u2013 optional mit Stichtag. Geburtsdatum Pflichtfeld. Das Datum muss vor oder am Stichtag liegen. Stichtag Optional. Leer = heute. Sie k\u00f6nnen auch \u201eHeute setzen\u201c nutzen. Berechnen Heute setzen Zur\u00fccksetzen Eingaben merken Speichert Geburtsdatum &amp; Stichtag lokal auf diesem Ger\u00e4t. Gesamtalter &#8230; <a title=\"Alter in Monaten Rechner\" class=\"read-more\" href=\"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/\" aria-label=\"Mehr Informationen \u00fcber Alter in Monaten Rechner\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-238","page","type-page","status-publish"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Alter in Monaten berechnen: Rechner f\u00fcr vollst\u00e4ndige Monate (mit Stichtag)<\/title>\n<meta name=\"description\" content=\"Alter in Monaten berechnen \u2013 als vollst\u00e4ndige Monate ab Geburtsdatum, optional mit Stichtag. Mit Aufteilung in Jahre\/Restmonate und Tage seit Monatswechsel. Ohne Daten\u00fcbertragung.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Alter in Monaten berechnen: Rechner f\u00fcr vollst\u00e4ndige Monate (mit Stichtag)\" \/>\n<meta property=\"og:description\" content=\"Alter in Monaten berechnen \u2013 als vollst\u00e4ndige Monate ab Geburtsdatum, optional mit Stichtag. Mit Aufteilung in Jahre\/Restmonate und Tage seit Monatswechsel. Ohne Daten\u00fcbertragung.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/\" \/>\n<meta property=\"og:site_name\" content=\"Kalender Wissen\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-05T11:34:41+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data1\" content=\"2\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/alter-in-monaten\\\/\",\"url\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/alter-in-monaten\\\/\",\"name\":\"Alter in Monaten berechnen: Rechner f\u00fcr vollst\u00e4ndige Monate (mit Stichtag)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#website\"},\"datePublished\":\"2026-03-05T11:33:12+00:00\",\"dateModified\":\"2026-03-05T11:34:41+00:00\",\"description\":\"Alter in Monaten berechnen \u2013 als vollst\u00e4ndige Monate ab Geburtsdatum, optional mit Stichtag. Mit Aufteilung in Jahre\\\/Restmonate und Tage seit Monatswechsel. Ohne Daten\u00fcbertragung.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/alter-in-monaten\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/alter-in-monaten\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/alter-in-monaten\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Start\",\"item\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Alter in Monaten Rechner\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/\",\"name\":\"Kalenderwissen\",\"description\":\"f\u00fcr den Wissenshunger\",\"publisher\":{\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#organization\",\"name\":\"Kalenderwissen\",\"url\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/apple-touch-icon.png\",\"contentUrl\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/apple-touch-icon.png\",\"width\":180,\"height\":180,\"caption\":\"Kalenderwissen\"},\"image\":{\"@id\":\"https:\\\/\\\/kalenderwoche.info\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Alter in Monaten berechnen: Rechner f\u00fcr vollst\u00e4ndige Monate (mit Stichtag)","description":"Alter in Monaten berechnen \u2013 als vollst\u00e4ndige Monate ab Geburtsdatum, optional mit Stichtag. Mit Aufteilung in Jahre\/Restmonate und Tage seit Monatswechsel. Ohne Daten\u00fcbertragung.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/","og_locale":"de_DE","og_type":"article","og_title":"Alter in Monaten berechnen: Rechner f\u00fcr vollst\u00e4ndige Monate (mit Stichtag)","og_description":"Alter in Monaten berechnen \u2013 als vollst\u00e4ndige Monate ab Geburtsdatum, optional mit Stichtag. Mit Aufteilung in Jahre\/Restmonate und Tage seit Monatswechsel. Ohne Daten\u00fcbertragung.","og_url":"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/","og_site_name":"Kalender Wissen","article_modified_time":"2026-03-05T11:34:41+00:00","twitter_card":"summary_large_image","twitter_misc":{"Gesch\u00e4tzte Lesezeit":"2\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/","url":"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/","name":"Alter in Monaten berechnen: Rechner f\u00fcr vollst\u00e4ndige Monate (mit Stichtag)","isPartOf":{"@id":"https:\/\/kalenderwoche.info\/blog\/#website"},"datePublished":"2026-03-05T11:33:12+00:00","dateModified":"2026-03-05T11:34:41+00:00","description":"Alter in Monaten berechnen \u2013 als vollst\u00e4ndige Monate ab Geburtsdatum, optional mit Stichtag. Mit Aufteilung in Jahre\/Restmonate und Tage seit Monatswechsel. Ohne Daten\u00fcbertragung.","breadcrumb":{"@id":"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kalenderwoche.info\/blog\/alter-in-monaten\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Start","item":"https:\/\/kalenderwoche.info\/blog\/"},{"@type":"ListItem","position":2,"name":"Alter in Monaten Rechner"}]},{"@type":"WebSite","@id":"https:\/\/kalenderwoche.info\/blog\/#website","url":"https:\/\/kalenderwoche.info\/blog\/","name":"Kalenderwissen","description":"f\u00fcr den Wissenshunger","publisher":{"@id":"https:\/\/kalenderwoche.info\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kalenderwoche.info\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kalenderwoche.info\/blog\/#organization","name":"Kalenderwissen","url":"https:\/\/kalenderwoche.info\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kalenderwoche.info\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/kalenderwoche.info\/blog\/wp-content\/uploads\/2026\/02\/apple-touch-icon.png","contentUrl":"https:\/\/kalenderwoche.info\/blog\/wp-content\/uploads\/2026\/02\/apple-touch-icon.png","width":180,"height":180,"caption":"Kalenderwissen"},"image":{"@id":"https:\/\/kalenderwoche.info\/blog\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/pages\/238","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/comments?post=238"}],"version-history":[{"count":1,"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/pages\/238\/revisions"}],"predecessor-version":[{"id":239,"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/pages\/238\/revisions\/239"}],"wp:attachment":[{"href":"https:\/\/kalenderwoche.info\/blog\/wp-json\/wp\/v2\/media?parent=238"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}