|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
сравнение времени
|
|
| AGP | Дата: Понедельник, 28.04.2008, 11:53:40 | Сообщение # 1 |
|
Рядовой
Группа: Пользователи
Сообщений: 2
Статус: Не в сети
| Привет! нужна помощь в написании некоторого плагина. запоролся на сравнении времени, имею Code new hn[9], mn[9] get_time("%H", hn, 9) get_time("%M", mn, 9)
new Result:res = dbi_query(sql, "SELECT `he`, `me`, `mail` FROM `rcon` WHERE `approved` = '1' ORDER BY `date`, `hs`, `ms` LIMIT 1") new he[32], me[32], mail[32] dbi_result(res,"he", he, 32) dbi_result(res,"me", me, 32) if (equal(he,hn)) { if (equal(me,mn)){ .... } таким образом мы сравниваем время точь в точь, каким образом я могу проверить, что hn уже больше he? тоесть если ((he==hn) или (he < hn))... заранее спасибо, и извените за глупый вопрос.
Сообщение отредактировал AGP - Понедельник, 28.04.2008, 11:55:40 |
| |
|
|
| DaTa | Дата: Понедельник, 28.04.2008, 12:19:58 | Сообщение # 2 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Скажи, для чего ты это используешь? Может тебе во все не нужно это. Quote get_time("%H", hn, 9) get_time("%M", mn, 9) new he[32], me[32] dbi_result(res,"he", he, 32) dbi_result(res,"me", me, 32) Последний параметр - максимальная длинна, в которую можно что-то вписать. Так как последний символ обязательно должен быть нулевым '\0'(при инициализации массива сначала все символы нулевые), то тебе нужно брать на 1 меньше, чем размер массива, т.е. get_time("%M", mn, 8), еще удобная форма - get_time("%M", mn, sizeof mn - 1) Quote if (equal(he,hn)) { if (equal(me,mn)){ Используй if( equal(he,hn) || equal(me,mn) ) {, читабельнее. Так как функция с запросом в БД вызывается редко, я надеюсь, то тут подобная оптимизация не обязательна. Ну и напоследок я бы тебе рекомендовал использовать(amxmodx.inc): Code /* Returns system time in seconds elapsed since 00:00:00 on January 1, 1970. * Offset is given in seconds.*/ native get_systime(offset = 0); Например, проверить, время в из запроса с базы данных находится в пределах 60ти секунд от текущего? Code //bd_time - время из результата БД if( get_systime() - bd_time < 60 ) {
|
| |
|
|
| AGP | Дата: Понедельник, 28.04.2008, 19:22:55 | Сообщение # 3 |
|
Рядовой
Группа: Пользователи
Сообщений: 2
Статус: Не в сети
| спасибо, что помогаешь нубу. первый вариант пробывал, сервер пишет такую бяку: Quote pipes.cpp (484) : Assertion Failed: bRet pipes.cpp (536) : Assertion Failed: bRet steamclient.cpp (371) : Assertion Failed: pClientPipe->BWriteAndReadResult( buf, bufRet ) steamclient.cpp (373) : Assertion Failed: bufRet.TellPut() == ( sizeof(HSteamUser) + sizeof(uint8) ) второй мне больше понравился, но не понял, в каком формате должно время в мускуле лежать. куча секунд должна быть? въехал, вопросов больше не имею(пока). спасибо!
Сообщение отредактировал AGP - Понедельник, 28.04.2008, 21:21:33 |
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |