Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   часы, переход на летнее время (http://www.flasher.ru/forum/showthread.php?t=112760)

nur 07.06.2008 01:42

часы, переход на летнее время
 
Подскажите как в этот коде сделать чтобы часы автоматически переходили на летнее и зимнее время

Код:

onClipEvent (enterFrame) {
        currentTime = new Date();
        currentHour = currentTime.getUTCHours()+3;
currentMinute = currentTime.getUTCMinutes();
        hourState._rotation = (currentHour*30)+(currentMinute/2);
}

это ставится на часовую стрелку

Роман Вадимович 07.06.2008 02:15

Flash приложение берет время с клиента, на котором запущено.
Каждый раз вызывая currentTime = new Date(); мы получаем значение системного времени ПК пользователя. А как правило у него стоит автоматический переход на лентее время.
Можете почитать здесь и использовать указанный по ссылке алгоритм для определения летнего/зимнего времени: http://ru.wikipedia.org/wiki/Летнее_время

nur 07.06.2008 17:15

в данном случае время берется несовсем с клента, а считается от гринвича, это нужно что бы в любом часов поясе флеш показывал точное московское время.
Но здесь не учитывается переход на летнее и зимнее время. Как сделать это в данном случае?

chingachgoog 07.06.2008 17:26

currentTime.getUTCHours()+3; - это зимнее, +4 - летнее
смотрите даты (по Гринвичу) и выбираете нужное прибавление.

NB Часовой пояс у нас +2, но есть декретное время +1 и еще летнее время +1

nur 07.06.2008 17:57

это я знаю сколько прибавлять нужно.
как сделать чтобы они сами в нужное время менялись как на компе

chingachgoog 07.06.2008 18:15

Так после того как вы определите правильное прибавление (3 или 4) по дате, они (часы) сами и поменяются на компе.
В чем проблема-то?

nur 07.06.2008 18:29

считается от гринвича, это время постоянное, оно вычисляется из времени установленного на компе путем вычитания или прибавление часового пояса.
Смена сезонного времени происходит только если поставленна галочка в настройках часах на компе, но при этом гринвич не меняется.

chingachgoog 07.06.2008 18:39

Ну и в чем проблема-то? Гринвич-то всегда правильно показывает. Поставлена галочка или нет. От Гринвича и пляшите.
Единственный вариант ошибки - пользователь неустановил галочку перехода времени (т.е. пользуется зимним временем) и самостоятельно привел системное время к текущему (летнему). Но это ошибка пользователя и он прочувствует ее зимой.

nur 07.06.2008 18:42

проблема как сделать чтобы мои флешевые часы автоматически переходили на летнее время!!!

iNils 07.06.2008 18:54

Цитата:

Сообщение от nur (Сообщение 744375)
проблема как сделать чтобы мои флешевые часы автоматически переходили на летнее время!!!

Код:

dateWinter = new Date (2000, 0);
date = new Date ();
trace (dateWinter.getTimezoneOffset ());
trace (date.getTimezoneOffset ());

У меня показывает -180 и -240, значит есть переход на летнее время. Надо также проверять, попадает ли date в промежуток: последнее воскресенье марта - последнее воскресенье октября


Часовой пояс GMT +4, время: 13:37.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.