Contest.samsu.ru :: соревнования по программированию
Русская версия || English version
Login:
Password:
Забыли пароль?
 пример поиска: Вася Пупкин
 

Московское время

Задачу добавил: alef

Успешно сдано решений: 8

Имя файла исходных данных:

INPUT.TXT

Имя выходного файла:

OUTPUT.TXT

Ограничение времени:

1 секунд на каждый тест

 

В системах электронной почты для представления даты и времени используется следующий формат:

EDATE ::= День_недели, Число Месяц Год Время Временная_зона

 

Здесь EDATEусловное название формата, а текст справа от "::=" определяет правила записи даты и времени. Ниже приводится расшифровка условных обозначений:

 

День_недели

Название дня недели. Возможные значения: MON, TUE, WED, THU, FRI, SAT, SUN. За днем недели вплотную следует символ "," (запятая).

 

Число

Номер дня месяца. Задается двумя десятичными цифрами.

 

Месяц

Название месяца. Возможные значения: JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC.

 

Год

Задается двумя или четырьмя десятичными цифрами. Если год задан двумя цифрами, считается, что это номер года в XX веке. Например, 1974 и 74 задают 1974 год.

 

Время

Местное время в формате часы:минуты:секунды, где часы, минуты и секунды состоят из двух десятичных цифр. Время лежит в пределах от 00:00:00 до 23:59:59.

 

Временная_зона

Отклонение местного времени от Гринвичского. Задается знаком отклонения "+" или “–" и четырьмя цифрами. Первые две задают часы, последние две — минуты отклонения. Абсолютная величина отклонения не превышает 24 часов. Временная зона может быть также представлена одним из следующих названий:

 

Название        Числовое значение

UT       -0000

GMT      -0000

EDT      -0400

CDT      -0500

MDT      -0600

PDT                -0700

 

Каждые два последовательных поля в записи EDATA разделяются между собой ровно одним пробелом. Названия дня недели, месяца и временной зоны записываются заглавными буквами.

 

Например, 10 часов утра в день проведения олимпиады в городе Санкт-Петербурге можно представить так:

TUE, 03 DEC 96 10:00:00 +0300

 

Напишите программу, которая переводит заданные дату и время в формате EDATE в соответствующие им дату и время в Московской временной зоне. Переход на летнее время не учитывается. Ваша программа должна полагаться на то, что установленный в дате день недели и временная зона корректны по определению.

 

Для справки

 

à      Время в Москве на 3 часа больше Гринвичского (временная зона +0300).

à      Месяцы: январь, март, май, июль, август, октябрь и декабрь содержат 31 день. Месяцы: апрель, июнь, сентябрь и ноябрь содержат 30 дней. Месяц февраль содержит 28 дней в обычный год и 29 дней — в високосный.

à      Год является високосным, если выполняется одно из двух условий:

а) его номер делится на 4 и не делится на 100;

б) его номер делится на 400.

Например, 1996 и 2000 годы являются високосными, а 1900 и 1997 — не високосными.

 

Исходные данные

 

Входной файл содержит в первой строке дату и время в формате EDATE. Минимальный допустимый год в исходных данных 0001, максимальный — 9998. Исходная строка EDATE не содержит ведущих и хвостовых пробелов.

 

Пример 1 файла исходных данных:

 

SUN, 03 DEC 1996 09:10:35 GMT

 

Пример 2 файла исходных данных:

 

WED, 28 FEB 35 23:59:00 +0259

 

Выходные данные

 

Выходной файл должен содержать одну строку — дату и время в формате EDATE в Московской временной зоне. Год в выходной строке EDATE может быть представлен любым из двух допустимых способов. В выходной строке не должно быть ведущих и хвостовых пробелов.

 

Возможный выходной файл для примера 1:

 

SUN, 03 DEC 1996 12:10:35 +0300

 

Возможный выходной файл для примера 2:

 

THU, 01 MAR 1935 00:00:00 +0300

Сдать задачу

Задать вопрос жюри по этой задаче