Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
endMonth - месяц окончания действия летнего времени; endDay - день окончания действия летнего времени*; endDayGtWeek - день недели окончания действия летнего времени*; endTime - время окончания действия летнего времени (указывается в миллисекундах).
Перевод часов на зимний и летний вариант исчисления времени определяется специальным правительственным указом. Обычно переход на летнее время происходит в 2 часа в последнее воскресенье марта, а переход на зимнее время - в 3 часа в последнее воскресенье октября.
Алгоритм расчета таков:
• если з1агЮау=1 и установлен день недели, то будет вычисляться первый день недели ЭТ^ОауОАЛ/еек месяца зт.а11МопМ (например, первое воскресенье);
• если 8т.аг10ау=-1 и установлен день недели, то будет вычисляться последний день недели этагЮауОАЛ/еек месяца этагНМопШ (например, последнее воскресенье);
• если день недели зт.аг10ауОг\Л/еек установлен в 0, то будет вычисляться число эт^Оау конкретного месяца startMonth;
• для того, чтобы установить день недели после конкретного числа, специфицируется отрицательное значение дня недели. Например, чтобы указать первый понедельник после 23 февраля, используется вот такой набор:
startDayOfWeek=-MONDAY, зт.агт.Моп^РЕВЯиАРгт', эт.агЮау=23
• для того, чтобы указать последний день недели перед каким-либо числом, указывается отрицательное значение этого числа и отрицательное значение дня недели. Например, для того, чтобы указать последнюю субботу перед 23 февраля, необходимо задать такой набор параметров:
э1аг10ауОАЛ/еек=-5АТ№ОАт; startMonth=FEBRUARY йагтОау=-23;
• все вышеперечисленное относится также и к окончанию действия летнего времени.
Рассмотрим пример получения текущей временной зоны с заданием Перехода на зимнее и летнее время для России по умолчанию.
public class Test { public Test() { }
public static ve-id main(String[] args) { Test test = new Test() ;
SimpleTimeZone stz = new SimpleTimeZone( TimeZone.getDefault().getRawOffset() ,TimeZone.getDefault().getlD() .Calendar.MARCH ,-1
.Calendar.SUNDAY ,test.getTime(2,0,0,0) .Calendar.OCTOBER ,-1
,Calendar.SUNDAY ,test.getTime(3,0,0,0)
);
System.out.println(stz.toString()); }
int getTime(int hour.int minjnt secjnt ms){