Mit JavaScript Alter ausrechnen?

1 Antwort

Solche Berechnungen lassen sich eigentlich in jeder beliebigen Programmiersprache anstellen und sind eigentlich nichts Besonderes. Im Grunde eine klassische Übungsaufgabe wie "Hallo Welt" für Anfänger, um eine Sprache zu lernen.

HTML:

<input type="date" id="date">
<button onclick="alert(calcAge())">Berechnen</button> 

JavaScript:

const calcAge = () => {
  const  date = document.querySelector('#date').value,
        today = new Date(),
        birth = new Date(date);

  let age = today.getFullYear() - birth.getFullYear();
  const m = today.getMonth() - birth.getMonth();

  if (m < 0 || (m === 0 && today.getDate() < birth.getDate())) {
          age--;
  }
  const months = today.getMonth() - birth.getMonth(),
          days = today.getDate() - birth.getDate();
  
  return `
    Du bist ${age} Jahre, 
    ${months} Monate und ${days} Tage alt.
  `;
}

LG medmonk

Woher ich das weiß:Berufserfahrung – Full-Stack Developer

maetin944 
Beitragsersteller
 05.04.2023, 13:14

es funktioniert nicht

medmonk  05.04.2023, 13:36
@maetin944

Wurde der Screenshot nachträglich hinzugefügt? Wie dem auch sei, ich habe deine Frage falsch verstanden. Die Berechnung an sich ist im Grunde identisch, in deinem Fall aber noch eine Format-Abfrage vorhanden sein sollte.

Ich haben den Quellcode an dein gewünschtes Format angepasst. Man könnte es jetzt noch um Formate erweitern, die habe ich jetzt aber mal außen vor gelassen. Danach wurde ja auch nicht gefragt und ja selber noch umsetzen kannst.

medmonk  05.04.2023, 13:58
@maetin944

Ich weiß ehrlich gesagt nicht, was ich jetzt mit deinem Fiddle anfangen soll. In deinem angehängtem Code-Snippet sehe ich nichts von der Funktion und es dort auch nicht um die Berechnung des Alters geht.

medmonk  05.04.2023, 14:04
@maetin944

Wie soll das Script denn funktionieren, wenn es nirgendwo aufgerufen und somit ausgeführt wird. ;) Du musst schon einen Funktion aufrufen (z.B. mit einem Button), damit sie entsprechend abgearbeitet wird.

<button onclick="alert(calcAge())">Berechnen</button>
medmonk  05.04.2023, 14:24
@maetin944

Verwende ein Input vom Typ "date" (siehe oben) und wenn die Funktion an.

Functional  07.04.2023, 14:55
@maetin944

Da haben einfach gefühlt zigtausend schließende, geschweifte Klammern gefehlt (auch war die Funktion im Fiddle eine völlig andere als die aus der Antwort hier, und hatte einige andere Fehler). Hier die behobene Version: https://jsfiddle.net/hug5abp1/

Diese berechnet allerdings Geburtstage im laufenden Jahr, die noch nicht passiert sind, nicht korrekt. Keine Ahnung, wo du die Funktion her hast (die aus der Antwort hier ist es wie gesagt nicht).

"geht nicht" ist übrigens keine Fehlerbeschreibung.

medmonk  07.04.2023, 15:27
@Functional
Da haben einfach gefühlt zigtausend schließende, geschweifte Klammern gefehlt

Wo denn bitte? Den einzigen Fehler, den ich jetzt ausmachen konnte, war ein Semikolon anstelle eines Kommas. Ich wüsste daher gerne, wo du die zigtausend geschweiften Klammern vermisst haben möchtest?

Klär mich bitte kurz auf, stehe das etwas auf dem Schlauch und nicht ganz folgenden kann - auf was du dich jetzt beziehst.

medmonk  07.04.2023, 15:44
@Functional

Bei der Hyperbel bin ich ja noch mitgekommen, danach war ich raus. Danke fürs Richtigstellen, dann kann nachher doch ruhig schlafen. 😉

Schönes Wochenende
medmonk