Показать сообщение отдельно
Непрочитано 20.11.2008, 03:53   #1
Пользователь

Автор темы (Топик Стартер) Как Установить Дату Осады

как назначить дату осады в L2Emu gracia part II
прет... у мну есть полезная инфа.
перерыл нет,и знаето что? ответа на свой вопрос не нашол.
И НА ЕТО ФОРУМЕ ТОЖЕ!
долго думал и начал експерементировать, что и натолкнуло на ответ.


Т.к. в БД все отщеты идут в милисекудах то и дата логически должна быть ими. А от отщет тикает от 1/1/1970

Теперь обясню что я делал:

И так, если я имею

1189936800000 мс в графе siegedate то соответственно

1189936800000 разделить не 1000 равно секундам от 1/1/1970 до даты осады
ето - 1189936800 секунд

дальше делаем так
1189936800 / 60 - ето будут минуты от 1/1/1970 до даты осады
ето = 19832280 минутам

после делаем тан
19832280 / 60 - ето часы от 1/1/1970 до даты осады
ето = 330538 часов

а теперь самое сложное) дуваю все знают что не каждый год имеет 365 дней

поетому с 1/1/1970 по 1/1/2008 мы имеем 9 лет с 366 днями, 1972, 1976,1980, 1984, 1988, 1992, 1996, 2000, 2004.

делаем так

с 1/1/1970 по 1/1/2007 = 37 лет
37 лет x 365 дней = 13505 дней
13505 дней x 24 часов = 324120 часов
324120 часов x 60 сек = 19447200 сек
19447200 сек x 1000 милисек = 19447200000 милисек

19447200000 еть пишем в графу siegeDate для установки осады на 1/1/2007 !

Пишем мну СПС
Easy

(ето пример у каждого может быть по разному)

НО я вот подумал и понял что ещё проще пощетать какая разница между той датой на которую стоит осада и той что мы хочем.
переводим в милисекунды и отнимаем от той(или плюсуем к той) что пишеться в БД.
вуаля и вот то что мы хотели
kokaaaa вне форума Ответить с цитированием
Сказали спасибо: