Страница 1 из 1
Преобразование дат из текстовой строки
Добавлено: 21 дек 2005, 20:50
A_Hakar
Помогите преобразовать даты из текстовой строки следующим образом:
Строка:
01.02.05 02.02.05 03.02.05 06.02.05 08.02.05 09.02.05
Нужно получить такую строку:
01.02.05-03.02.05 06.02.05 08.02.05-09.02.05
Добавлено: 23 дек 2005, 13:00
Blood_Magic
НЕ совсем понятно, точнее совсем не понятно, но народ явно ленится.
Добавлено: 23 дек 2005, 17:06
Duncon
Да уж объясни попонятней, если у тебя условия не меняются, то это совсем просто...
Добавлено: 25 дек 2005, 13:36
Хыиуду
Эгм... я так понял, дан список дат (кстати, обязательно в хронологическом порядке), надо его преобразовать так, что дни, идущие подряд, например, 03.02.05, 04.02.05, 05.02.05 заменялись их диапазоном (03.02.05 - 05.02.05).
В принципе, ничего сложного нет. Запоминаем первую дату как "начало диапазона". Начиная с начала строки (то есть с той же первой даты) считываем дату (6 символов), запоминаем как Дата1 . Считываем следующую дату (Дата2). Даты в формате День.Месяц.Год. Преобразовываем строку в числа (это несложно)
Если день2=день1+1
или
(день2=1) и (месяц2=месяц1+1)
или
(день2=1) и (Месяц2=1) и (Год2=Год1+1)
то считываем следующую дату (дни идут подряд). Если нет, то:
Если "начало диапазона"=день1 (т.е. не было идущих подряд дат), то записываем в полученную строку "начало диапазона". В противном случае "начало диапазона"+" - "+"дата1".
Запоминаем Дата2 как новое "начало диапазона". Продолжаем считывать.