#define Seconds(%0,%1,%2,%3) return ((%0*86400)+(%1*3600)+(%2*60)+(%3))
#define Minutes(%0,%1,%2,%3) return ((%0*1440)+(%1*60)+(%2)+(%3*60))
#define Hours(%0,%1,%2,%3) return ((%0*24)+(%1)+(%2*60)+(%3*3600))
#define Days(%0,%1,%2,%3) return ((%3*86400)+(%2*1440)+(%1*24)+(%0))
Seconds( Tage, Stunden, Minuten, Sekunden )
Minutes( Tage, Stunden, Minuten, Sekunden )
Hours( Tage, Stunden, Minuten, Sekunden )
Days( Tage, Stunden, Minuten, Sekunden )
__________________________________________________________
Einige kennen doch die mktime Funktion.
Ich hab eine Funktion entwickelt, welche die Sekunden wieder in ein Datum umwandeln.
(Die Funktion braucht jedoch mktime)
Header:
date(zeitpunkt, &hour, &minute, &second, &day, &month, &year) // by Steam
( Der Zeitpunkt ist der Parameter für die Sekunden seit 01. Januar 1970 00:00:00 )
Funktion:
stock date(zeitpunkt, &hour, &minute, &second, &day, &month, &year) // by Steam
{
new h = 0, m = 0, s = 0, da = 1, mo = 1, ye = 1970;
for(;;) { ye++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { ye--; break; } }
for(;;) { mo++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { mo--; break; } }
for(;;) { da++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { da--; break; } }
for(;;) { h++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { h--; break; } }
for(;;) { m++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { m--; break; } }
for(;;) { s++; if(((zeitpunkt) - (mktime(h, m, s, da, mo, ye))) < 0) { s--; break; } }
hour = h; minute = m; second = s; day = da; month = mo; year = ye; return 1;
}
Beispiel:
new h, mins, s, d, m, y;
date(mktime(18, 32, 0, 16, 04, 2002), h, mins, s, d, m, y);
printf("%d.%d.%d %d:%d:%d", d, m, y, h, mins, s);
Hier ist noch mktime:
stock mktime(hour,minute,second,day,month,year)
{
new timestamp2 = second + (minute * 60) + (hour * 3600), days_of_month[12], days_this_year = day;
if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31};
else days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31};
if(month > 1) for(new i=0; i<month-1;i++) days_this_year += days_of_month[i];
timestamp2 += days_this_year * 86400;
for(new j=1970;j<year;j++) {
timestamp2 += 31536000;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) timestamp2 += 86400;
}
return timestamp2;
}