Hier mal eine einfache Abfrage zur Differenz zwischen 2 Daten und 2 Uhrzeiten.
Entstanden aus ein bereits hier zu findener Codeschnipsel mit dem man die differenz zwischen 2 Daten in Form von Tagen wiedergeben kann.
stock CheckTimeDifference(sekunde1,minute1,stunde1,sekunde2,minute2,stunde2, returnmode)
{
new minutes = 0, seconds = 0, hours = 0;
if(!IsValidTime(sekunde1,minute1,stunde1) return -1;
if(!IsValidTime(sekunde2,minute2,stunde2) return -1;
while(sekunde1 != sekunde2 || minute1 != minute2 || stunde1 != stunde2)
{
sekunde1++;
seconds++;
if(sekunde1 > 59)
{
sekunde1 = 0;
minute1++;
minutes++;
}
if(minute1 > 59)
{
sekunde1 = 0;
minute1 = 0;
stunde1++;
hours++;
}
}
if(returnmode == 0) return seconds;
else if(returnmode == 1) return minutes;
else if(returnmode == 2) return hours;
else return -1;
}
stock CheckDateDifference(tag1, monat1, jahr1, tag2, monat2, jahr2, returnmode)
{
new years = 0, month = 0, days = 0;
if(!IsValidDate(tag1,monat1,jahr1)) return -1;
if(!IsValidDate(tag2,monat2,jahr2)) return -1;
while(tag1 != tag2 || monat1 != monat2 || jahr1 != jahr2)
{
tag1++;
days++;
if(tag1>28 && monat1 == 2)
{
tag1=1;
monat1++;
month++;
}
if(tag1>30 && (monat1 == 4 || monat1 == 6 || monat1 == 9 || monat1 == 11))
{
tag1=1;
monat1++;
month++;
}
if(tag1>31 && (monat1 == 1 || monat1 == 3 || monat1 == 5 || monat1 == 7 || monat1 == 8 || monat1 == 10 || monat1 == 12))
{
tag1=1;
monat1++;
month++;
}
if(monat1>12)
{
tag1=1;
monat1=1;
jahr1++;
years++;
}
}
if(returnmode == 0) return days;
else if(returnmode == 1) return month;
else if(returnmode == 2) return years;
else return -1;
}
stock IsValidDate(tag, monat, jahr)
{
new day, month, year;
getdate(year,month,day);
if(jahr < 0 || jahr > year) return 0;
if(monat < 1 || monat > 12) return 0;
if(tag < 1 && tag > 31) return 0;
else
{
if(tag > 28 && monat == 2) return 0;
if(tag > 30 && (monat == 2 || monat == 4 || monat == 6 || monat == 9 || monat == 11)) return 0;
}
return 1;
}
stock IsValidTime(sekunde, minute, stunde)
{
if(sekunde < 0 || sekunde > 59) return 0;
if(minute < 0 || minute > 59) return 0;
if(stunde < 0 || stunde > 23) return 0;
return 1;
}
Liebe Grüße
Simon