Re: how to get the date
Quote:
Originally Posted by katna
(Post 1438538)
You can take a look at exolent code of unbantime
PHP Code:
GenerateUnbanTime(const bantime, unban_time[], len)
{
static _hours[5], _minutes[5], _seconds[5], _month[5], _day[5], _year[7];
format_time(_hours, sizeof(_hours) - 1, "%H");
format_time(_minutes, sizeof(_minutes) - 1, "%M");
format_time(_seconds, sizeof(_seconds) - 1, "%S");
format_time(_month, sizeof(_month) - 1, "%m");
format_time(_day, sizeof(_day) - 1, "%d");
format_time(_year, sizeof(_year) - 1, "%Y");
new hours = str_to_num(_hours);
new minutes = str_to_num(_minutes);
new seconds = str_to_num(_seconds);
new month = str_to_num(_month);
new day = str_to_num(_day);
new year = str_to_num(_year);
minutes += bantime;
while( minutes >= 60 )
{
minutes -= 60;
hours++;
}
while( hours >= 24 )
{
hours -= 24;
day++;
}
new max_days = GetDaysInMonth(month, year);
while( day > max_days )
{
day -= max_days;
month++;
}
while( month > 12 )
{
month -= 12;
year++;
}
formatex(unban_time, len, "%i:%02i:%02i %i/%i/%i", hours, minutes, seconds, month, day, year);
}
GetDaysInMonth(month, year=0)
{
switch( month )
{
case 1: return 31; // january
case 2: return ((year % 4) == 0) ? 29 : 28; // february
case 3: return 31; // march
case 4: return 30; // april
case 5: return 31; // may
case 6: return 30; // june
case 7: return 31; // july
case 8: return 31; // august
case 9: return 30; // september
case 10: return 31; // october
case 11: return 30; // november
case 12: return 31; // december
}
return 30;
}
|
Wow. That's a lot of code. Here is a much simpler form:
PHP Code:
GenerateUnbanTime(const bantime_minutes, unban_time[], len)
{
new timestamp = get_systime()
timestamp += (bantime_minutes * 60)
format_time(unban_time, len, "%H:%M:%S %m/%d/%y", timestamp)
}
|