Alter ausrechnen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Da es sich bei der eingabe nicht um atomare Werte handelt müssen die erstmal gesplitet werden. Dafür kannst du Strmid zum ausschneiden und strfind zum auslesen der Character Position nach dem . (0 beim Tag) verwenden. Alternativ geht auch eine split Funktion mit dem Delimiter '.'.


    Wenn du dann drei Variablen hast, nämlich tag,monat & jahr, gehts weiter (strval) nicht vergessen.


    Mit dem aktuellen Datum:


    new d,m,y,alter;
    getday(y,m,d);


    if(m < monat)
    {
    alter = y-jahr-1;
    }
    else if(m == monat)
    {
    if(d < tag)
    {
    alter = y-jahr-1;
    }
    else
    {
    alter = y-jahr;
    }
    }
    else
    {
    alter = y-jahr;
    }


    Denke so sollte das funktionieren.

  • Da hat Hauke was gemacht gehabt
    stock GetAge(Birthday[16])
    {
    new D,M,Y,Age;
    getdate(Y,M,D);
    for(new i = strlen(Birthday); i > -1; i--)
    {
    if(Birthday[i] == '.')
    {
    new Tmp[32];
    for(new o = i-1; o > -1; o--)
    {
    if(Birthday[o] == '.')
    {
    strmid(Tmp,Birthday,o+1,i);
    if(strval(Tmp)>=M)
    {
    strmid(Tmp,Birthday,0,o);
    if(strval(Tmp)>D)
    {
    strmid(Tmp,Birthday,i+1,strlen(Birthday));
    Age = Y-strval(Tmp)-1;
    break;
    }
    }
    strmid(Tmp,Birthday,i+1,strlen(Birthday));
    Age = Y-strval(Tmp);
    break;
    }
    }
    }
    }
    return Age;
    }
    anwendung dann so:
    format(string,128,"Dein alter: %d",GetAge(01.12.1999));

    All in all it's just another brick in the wall