Last active
August 29, 2015 14:20
-
-
Save evgenylavelin-xx/f1637be7c4016ec370dd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Автор: Сергей (ildarovich, http://infostart.ru/profile/28527/) | |
| Функция СтрокаВДату(Знач ФорматДаты, Знач СтрокаСДатой, Ошибка = Ложь) Экспорт | |
| Попытка | |
| тест = Формат('00010101', "ДФ=" + ФорматДаты) // - проверка корректности параметра ФорматДата | |
| Исключение | |
| Ошибка = Истина; | |
| Возврат '00010101' | |
| КонецПопытки; | |
| составДаты = Новый Соответствие; // - части даты | |
| Для Инд = 1 По СтрДлина(ФорматДаты) + 7 Цикл | |
| составДаты[Сред(ФорматДаты + "dMyHhms", Инд, 1)] = 0 // - инициализация частей даты | |
| КонецЦикла; | |
| Для Инд = 1 По 12 Цикл | |
| СтрокаСДатой = СтрЗаменить(СтрокаСДатой, Формат(Дата(1, Инд, 1), "ДФ=MMММ"), Формат(Инд, "ЧЦ=4; ЧВН=")); // - замена названий месяцев числами | |
| СтрокаСДатой = СтрЗаменить(СтрокаСДатой, Формат(Дата(1, Инд, 1), "ДФ=MMМ" ), Формат(Инд, "ЧЦ=3; ЧВН=")) | |
| КонецЦикла; | |
| Для Инд = 1 По СтрДлина(ФорматДаты) Цикл | |
| составДаты[Сред(ФорматДаты, Инд, 1)] = 10 * составДаты[Сред(ФорматДаты, Инд, 1)] + Найти("123456789", Сред(СтрокаСДатой, Инд, 1)); // - накопление частей даты | |
| Ошибка = Ошибка ИЛИ Найти("dMyHhms", Сред(ФорматДаты, Инд, 1)) И НЕ Найти("0123456789", Сред(СтрокаСДатой, Инд, 1)) // - необязательная проверка на цифры | |
| КонецЦикла; | |
| составДаты["y"] = составДаты["y"] + ?(составДаты["y"] < 50, 2000, ?(составДаты["y"] < 100, 1900, 0)); // - дополнение двух цифр года до четырех | |
| Попытка | |
| Возврат Дата(составДаты["y"], составДаты["M"], составДаты["d"], составДаты["H"] + составДаты["h"], составДаты["m"], составДаты["s"]) | |
| Исключение | |
| Ошибка = Истина; | |
| Возврат '00010101' | |
| КонецПопытки | |
| КонецФункции // СтрокаВДату |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment