Привет. Вроде сделал украинские
часы с переходом на летнее время, но не могу понять как проверить их работоспособность.
Я учитываю погрешность относительно гринвича. Летом эта погрешность составляет +3, зимой +2. Учитываю летний период присваиваю значение переменной shift = 3, и зимой shift = 2.
На компьютерном календаре меняю месяц и число (проверяю реакцию на летний\зимний периоды) - трейситься нормально. Но вот на стрелках как было 15.00 (на пример) так и осталось. Подскажите что я не так делаю? Или когда комп сам перейдёт на зимнее время то всё будет ок?
Если нужен исходник - я выложу.
Вот сам код:

Код AS1/AS2:
// Обычное Украинское время (не летнее) относительно гринвича +2, летнее +3
// Погрешность относительно гринвича
var shift:Number;
//Экземпляр класса Date
var today:Date = new Date();
// Текущий месяц (добавляем 1 т.к. первый месяц года начинается с ноля)
var month:Number = today.getMonth() + 1;
// День
var day:Number = today.getDate();
// Год
var year:Number = today.getFullYear();
// Определяем год, т.к. летнее время начинается\заканчивается в разные числа разного года
switch (year) {
case 2009 :
// В 2009-м году летнее время с 29 марта по 25 октября
// Определяем летнее время сейчас или зимнее
if (summerTime(29, 3, 25, 10)) {
shift = 3;
} else {
shift = 2;
}
trace('2009');
break;
case 2010 :
// В 2010-м году летее время с 28 марта по 31 октября
// Определяем летнее время сейчас или зимнее
if (summerTime(28, 3, 31, 10)) {
shift = 3;
} else {
shift = 2;
}
trace('2010');
break;
default :
trace('default');
}
// Определяем летнее время сейчас или зимнее
// sDay, sMon - день и месяц начала летнего времени
// fDay, fMon - день и мецяс окончания летнего времени
function summerTime(sDay:Number, sMon:Number, fDay:Number, fMon:Number):Boolean {
if (month < sMon || month > fMon) {
return false;
}
if ((month == sMon && day < sDay) || (month == fMon && day > fDay)) {
return false;
}
return true;
}
///////////////////////////////////Крутим стрелки//////////////////////////////////////////////
s._rotation = today.getSeconds() * 6;
m._rotation = today.getMinutes() * 6;
h._rotation = (today.getUTCHours() + shift) * 30 + today.getMinutes() / 2;