Имя: Пароль:
1C
 
Форматная строка даты. как присунуть ноль в часы?
0 Shved_72
 
05.10.16
07:12
http://i.imgur.com/fD3ES8Y.png
05.10.2016  9:08:47 -> 05.10.2016 09:08:47
1 Shved_72
 
05.10.16
07:13
всем спасибо dd.MM.yy чч:мм:сс
2 1dvd
 
05.10.16
07:15
присунул и пошёл...
3 kuzyara
 
05.10.16
07:33
Интересно зачем? Разве так лучше читается?
4 1dvd
 
05.10.16
07:34
(3) её легче парсить
5 Shved_72
 
05.10.16
07:35
перфекционанизм мать его.
строки съезжают когда сначала 9, а потом 10
9
9
9
10
10
6 Shved_72
 
05.10.16
07:37
7 kuzyara
 
05.10.16
08:09
ня
/ Процедура СтрокаВДату преобразует строку в дату по шаблону форматной строки
//
// Параметры
//  Строка        - строка, содержащая дату,
//  ФорматДаты    - форматная строка вида:
// [dd MM yy]
// [yy-MM-dd HH:mm]
// [dd MM yy HH mm ss]
// [dd MM yyyy]
// [MM dd, yyyy, HH:mm]
// [dd.MM.yy]
// [MM, dd, yyyy]
// [yyyyMMdd]
// [HH-mm-ss, dd-MM-yy]
// [dd]
// [dd MM HH:mm:ss yyyy]
// [HH:mm:ss]
// [HH:mm]
// [yyyy-MM-dd HH:mm:ss]
// [yyyy-MM-dd]
// [yyyy/MM/dd]
// [dd/MM/yy]
// [MM dd yyyy]
// [yyyy-MM]
// [yyyy]
// [MM, dd, yyyy]
// [dd-MM-yyyy]
// [ddMMyyyy]
//
Функция СтрокаВДату(Знач Строка, Знач ФорматДаты) Экспорт
    Ч = Новый Соответствие;
    Для ё = 1 По СтрДлина(ФорматДаты) + 6 Цикл
        Ч[Сред(ФорматДаты + "dMyHms", ё, 1)] = 0
    КонецЦикла;
    Для ё = 1 По СтрДлина(ФорматДаты) Цикл
        Ч[Сред(ФорматДаты, ё, 1)] = 10 * Ч[Сред(ФорматДаты, ё, 1)] + Найти("123456789", Сред(Строка, ё, 1));
    КонецЦикла;
    Ч["y"] = Ч["y"] + ?(0 < Ч["y"] И Ч["y"] < 50, 2000, ?(0 < Ч["y"] И Ч["y"] < 100, 1900, 0));
    Возврат Дата(Макс(Ч["y"], 1), Макс(Ч["M"],1), Макс(Ч["d"],1), Ч["H"], Ч["m"], Ч["s"]);
КонецФункции  
8 Shved_72
 
05.10.16
08:12
ой ё
9 1dvd
 
05.10.16
08:16
А Кузяра любит секс стоя в гамаке...
10 Рэйв
 
05.10.16
08:31
(7) дарю попроще:-)
Делает дату из любой удобоваримой строки даже если цифры разделены хрен знает чем

//-------------
11 Рэйв
 
05.10.16
08:31
Функция ДатаИзСтрокиВн(СтрокаДата)  Экспорт
    СтрокаДатаДо     =СтрокаДата;
    СтрокаДата        =ПроверитьТолькоЦифрыВн(СтрокаДата);
    
    Если   СтрДлина(СтрокаДата)=6 Тогда
        ДатаИмпорт=СокрЛП(СтрокаДата);
        Год=Прав(ДатаИмпорт,2);
        Если Число(Лев(Год,1))>5 Тогда
            Год="19"+Год;
        Иначе
            Год="20"+Год;
        КонецЕсли;      
        Месяц    =Сред(ДатаИмпорт,3,2);
        День    =Лев(ДатаИмпорт,2);
        Попытка
            Дата80=Дата(Год+Месяц+День);
        Исключение
            Сообщить("Ошибка конвертации даты: '"+ДатаИмпорт+"' -> '"+Год+"."+Месяц+"."+"'");
            Возврат Дата(0);

        Конецпопытки;      
        Возврат Дата80;
        
    ИначеЕсли СтрДлина(СтрокаДата)=8  Тогда
        ДатаИмпорт=СокрЛП(СтрокаДата);
        Год=Прав(ДатаИмпорт,4);
        Месяц    =Сред(ДатаИмпорт,3,2);
        День    =Лев(ДатаИмпорт,2);
        Попытка
            Дата80=Дата(Год+Месяц+День);
        Исключение
            Сообщить("Ошибка конвертации даты: '"+ДатаИмпорт+"' -> '"+Год+"."+Месяц+"."+"'");
            Возврат Дата(0);
        Конецпопытки;      
        Возврат Дата80;
    Иначе    
        Сообщить("Неверный формат переданной строки.  Полученый параметр: '"+СтрокаДатаДо+"'.  Обработанный параметр: "+СтрокаДата);
        Возврат Дата(0);
    КонецЕсли;    
    
    
КонецФункции
12 Рэйв
 
05.10.16
08:31
+Функция ПроверитьТолькоЦифрыВн(Пар,Режим="Очистка") Экспорт
    Ответ="";
    Для Н=1 По СтрДлина(Пар) Цикл
        Сим=Сред(Пар,н,1);
        Если НЕ(Найти("0123456789", Сим)) Тогда
            Если Режим="Проверка" Тогда
                Возврат Ложь;
            Иначе
                Продолжить;
            КонецЕсли;
        Иначе
            Ответ=Ответ+Сим;
            
        КонецЕсли;    
    КонецЦикла;    
    Если Режим="Проверка" Тогда
        Возврат Истина;
    Иначе
        Возврат Ответ;
    КонецЕсли;    
КонецФункции
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс