ЗАДАЧИ
problems.ru |
О проекте
|
Об авторах
|
Справочник
Каталог по темам | по источникам | |
|
Задача 102954
УсловиеСовременные системы управления базами данных поддерживают широкий класс различных операций с датами. Для решения этой задачи Вы должны написать программу, реализующую некоторые из таких операций. Ваша программа должна обрабатывать выражения следующих типов:<Дата> <Дата> + <Сдвиг> <Дата> - <Сдвиг> <Дата> - <Дата> Здесь <Дата> задается в одном из следующих трех форматов: А) дд.мм.гггг (например, 21.06.1998 ). В этой записи день и месяц задаются в точности двумя десятичными цифрами, год – ровно четырьмя. Б) д месяца г года (например, 21 июня 1998 года ). В этом формате могут присутствовать ведущие нули (например, 01 июня 198 года ). В) сегодня – текущая дата, установленная в компьютере. <Сдвиг> задается в виде [L лет ] [M месяцев ] [N недель ] [D дней ]. Квадратные скобки здесь означают, что некоторые из указанных четырех составных частей могут опускаться (но не все сразу). Слова «лет», «месяцев», «недель», «дней» склоняются по правилам русского языка: 1 год, 5 лет, 2 месяца, 5 месяцев и т.д. Значением выражений первых трех типов является дата. В случае
выражения первого типа значением является сама <Дата>. В случае выражений
второго и третьего типа вычисление искомой даты происходит следующим
образом: сначала прибавляется (либо вычитается) L лет, затем M месяцев, после
чего N недель и, наконец, D дней. Если в течение этого процесса получается
несуществующее число месяца, то берется последнее число этого месяца (см.
пример). Результатом выражения четвертого типа является количество дней
между двумя указанными датами. РешениеСкачать архив тестов и решенийИсточники и прецеденты использования |
© 2004-...
МЦНМО
(о копирайте)
|
Пишите нам
|