Geburtsdatum-Abfrage

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
  • Beitrag von palma7071 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • new year, month,day,DateInfo[3][20];
    getdate(year, month, day);
    split(inputtext, DateInfo, '.');
    if(response == 1)
    if(strlen(inputtext) > 10){

    return 1;
    }
    if(!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]))){
    return 1;
    }
    if(year - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= year){

    return 1;
    }
    new check = year - strval(DateInfo[2]);
    if(check == year){
    return 1;
    }
    if(strval(DateInfo[1]) > month){
    check -= 1;
    }
    else if(strval(DateInfo[1]) == month && strval(DateInfo[0]) > day){
    check -= 1;
    }
    SpielerInfo[playerid][Alter] = check;
    format(string,sizeof(string),"Ok, du bist also %d Jahre alt.",SpielerInfo[playerid][Alter]);
    SendClientMessage(playerid,Grün,string);

    return 1;
    }


    Musste umschreiben ;)

  • Beitrag von palma7071 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • stock split(const strsrc[], strdest[][], delimiter){
    new i,li,aNum,len;
    while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }


    stock IsValidDate(day, month, year){
    new maxDays;
    if(year < 1900 || year > 2010) return 0;
    switch (month){
    case 1,3,5,7,8,10,12: maxDays = 31;
    case 4,6,9,11: maxDays = 30;
    case 2:{
    if(IsLeapYear(year)){
    maxDays = 29;
    }
    else{
    maxDays = 28;
    }
    }
    default: return 0;
    }
    if(day < 1 || day > maxDays) return 0;
    return 1;
    }


    stock IsLeapYear(year){
    return ( year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) );
    }

  • Beitrag von palma7071 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Beitrag von palma7071 ()

    Dieser Beitrag wurde vom Autor gelöscht ().
  • Ich würde das Datum speichern und dir eine Funktion schreiben die aus jeden Datum das Alter errechnet bis zum heutigen Tag.


    Sowas wie GetAge(day, month, year);


    Ein bisschen rechnen und fertig ;)


    Würde mich auch Interessieren wie mann das macht.

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward