Московское время
Задачу добавил: 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