11-20-2008, 03:53 AM
как назначить дату осады в 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
(ето пример у каждого может быть по разному)
НО я вот подумал и понял что ещё проще пощетать какая разница между той датой на которую стоит осада и той что мы хочем.
переводим в милисекунды и отнимаем от той(или плюсуем к той) что пишеться в БД.
вуаля и вот то что мы хотели
прет... у мну есть полезная инфа.
перерыл нет,и знаето что? ответа на свой вопрос не нашол.
И НА ЕТО ФОРУМЕ ТОЖЕ!
долго думал и начал експерементировать, что и натолкнуло на ответ.
Т.к. в БД все отщеты идут в милисекудах то и дата логически должна быть ими. А от отщет тикает от 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
(ето пример у каждого может быть по разному)
НО я вот подумал и понял что ещё проще пощетать какая разница между той датой на которую стоит осада и той что мы хочем.
переводим в милисекунды и отнимаем от той(или плюсуем к той) что пишеться в БД.
вуаля и вот то что мы хотели