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
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) );
}
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
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.
Hier arbeiten die mit GetAlter: Geburtsdatum in Alter umwandeln.