|
Не получается преобразовать строку в дату | ☑ | ||
---|---|---|---|---|
0
SherifSP
22.07.13
✎
18:23
|
Дата(05052013+ " " + 08:45:00) преобразование к типу дата не может быть выполнено
|
|||
1
ale-sarin
22.07.13
✎
18:24
|
Дата(20130505084500)
Лентяй снова. |
|||
2
Жан Пердежон
22.07.13
✎
18:25
|
число + строка + хрен пойми что?
|
|||
3
SherifSP
22.07.13
✎
18:29
|
(2) Строка + пробел + Строка)
|
|||
4
EvgeniuXP
22.07.13
✎
18:29
|
а так: Дата('2013-05-05') + 31500?
|
|||
5
EvgeniuXP
22.07.13
✎
18:33
|
или может лучше так: Дата('2013-05-05 08:45:00')?
|
|||
6
EvgeniuXP
22.07.13
✎
18:34
|
"Участвовал в олимпийских играх 2012" - надеюсь не на 1С?
|
|||
7
SherifSP
22.07.13
✎
18:36
|
Вообще ситуация такая: Есть 2 переменные с типом строка ДатаВыезда = 05052013 и ВремяВыезда = 08:45:00 нужно преобразовать в дату
|
|||
8
SherifSP
22.07.13
✎
18:36
|
(6) Нет, по боксу выступал
|
|||
9
EvgeniuXP
22.07.13
✎
18:37
|
(7) строки в КАВЫЧКИ ЗАКЛЮЧАЮТСЯ!
|
|||
10
SherifSP
22.07.13
✎
18:38
|
(9) Не только можно методом Строка()
|
|||
11
EvgeniuXP
22.07.13
✎
18:39
|
(10) и где у тебя Строка в (7) умник?
|
|||
12
Wobland
22.07.13
✎
18:39
|
(10) как у нас записывается литерал строки? думаем, думаем
|
|||
13
SherifSP
22.07.13
✎
18:40
|
(11) Уже в методе дата(Строка(ДатаВыезда) + Строка(ВремяНач))
|
|||
14
Wobland
22.07.13
✎
18:41
|
(13) вопрос про (7)
|
|||
15
SherifSP
22.07.13
✎
18:42
|
(14) Понял, может код преобразования выложить?)
|
|||
16
szhukov
22.07.13
✎
18:42
|
Для времени:
СтрЗаменить(Строка(ВремяНач), ":", "") :) |
|||
17
EvgeniuXP
22.07.13
✎
18:42
|
(13) отладчик смотри, что у тебя там получается...
скачай и посмотри, может что прояснится: http://files.spec8.ru/main_materials/BonusesSpec8RU/Open/dbase_module0.rar |
|||
18
SherifSP
22.07.13
✎
18:42
|
+(15) Мб что то путевое подскажете)
|
|||
19
Wobland
22.07.13
✎
18:42
|
(15) выкладывай, мне пофих
|
|||
20
SherifSP
22.07.13
✎
18:43
|
Функция ПреобразоватьДату(Время,ДатаВыезда)
_ДатаВыезда = Формат(ДатаВыезда,"ДФ=dd.MM.yyyy"); ДатаВыезда = СтрЗаменить(Строка(_ДатаВыезда),".",""); КолСимволов = СтрДлина(Время); Кол = 1; ВремяНач = Неопределено; ВремяКон = Неопределено; Для I = 1 По КолСимволов - 1 Цикл Строка = Сред(Время,1,Кол); Символ = Прав(Строка,1); Если Символ = "-" И Кол > 3 И ВремяНач = Неопределено И Кол < 6 Тогда ВремяНач = СокрЛП(СтрЗаменить(Лев(Время,Кол - 1),":","")+"00"); ИначеЕсли ВремяНач <> Неопределено Тогда ВремяКон = СокрЛП(СтрЗаменить(Сред(Время,I),":","")+"00"); Прервать; КонецЕсли; Кол = Кол + 1; КонецЦикла; Если СтрДлина(ВремяНач) = 5 Тогда ВремяНач = "0" + ВремяНач; КонецЕсли; Если СтрДлина(ВремяНач) = 5 Тогда ВремяКон = "0" + ВремяКон; КонецЕсли; Если ВремяНач = Неопределено Тогда ВремяНач = "083500"; КонецЕсли; Если ВремяКон = Неопределено Тогда ВремяКон = "175000"; КонецЕсли; Структура = Новый Структура(); Структура.Вставить("ДатаНач", Дата(ДатаВыезда + ВремяНач)); Структура.Вставить("ДатаКон", Дата(ДатаВыезда + ВремяКон)); Возврат Структура; КонецФункции |
|||
21
EvgeniuXP
22.07.13
✎
18:44
|
ушел плакать...
|
|||
22
EvgeniuXP
22.07.13
✎
18:45
|
и поговори с Лизой, вы друг-друга стоите: v8: Почему на этом коде зависает?.
|
|||
23
SherifSP
22.07.13
✎
18:45
|
+(20) Время в параметре в таком виде 8:45-17:45
|
|||
24
szhukov
22.07.13
✎
18:45
|
(20) Для даты:
Формат(ДатаВыезда,"ДФ=yyyyMMdd"); + время :) |
|||
25
SherifSP
22.07.13
✎
18:46
|
Время может быть и такое 08-45:17:45
|
|||
26
Wobland
22.07.13
✎
18:47
|
я надеюсь, входные данные извне прилетают? только в этом случае может быть хоть какое-то оправдание
|
|||
27
SherifSP
22.07.13
✎
18:48
|
Во времени фигурируют только 2 вида символов "-" и ":", они могут быть в любом месте переменной
|
|||
28
szhukov
22.07.13
✎
18:48
|
(25) Кури тогда: СтрЗаменить()
|
|||
29
SherifSP
22.07.13
✎
18:49
|
(26) С другой программы
|
|||
30
szhukov
22.07.13
✎
18:49
|
+(28) см (16)
|
|||
31
szhukov
22.07.13
✎
18:49
|
(29) Дата(коммент(24)+коммент(16)) - будет дата
|
|||
32
Фокусник
22.07.13
✎
18:49
|
(21) ё-маё, дайте скидку боксеру!
|
|||
33
szhukov
22.07.13
✎
18:52
|
(27)(32) Скидка:
Дата(Формат(ДатаВыезда,"ДФ=yyyyMMdd")+СтрЗаменить(СтрЗаменить(Строка(ВремяНач), ":", ""), "-", "")) |
|||
34
Wobland
22.07.13
✎
18:53
|
(32) ушёл всхлипывать ;)
|
|||
35
SherifSP
22.07.13
✎
19:01
|
Ладно, я быстро учусь вот смотрите )
Функция ПреобразоватьДату(Время,ДатаВыезда) Если СтрДлина(Время) = 10 Тогда ВремяНач = "0" + Лев(Время,4)+":00"; Иначе ВремяНач = Лев(Время,5)+":00"; КонецЕсли; ВремяКон = Прав(Время,5)+"00"; ВремяНачала = Дата(Формат(ДатаВыезда,"ДФ=yyyyMMdd")+СтрЗаменить(ВремяНач), ":", "")); Структура = Новый Структура(); Структура.Вставить("ДатаНач", Дата(ДатаВыезда + ВремяНач)); Структура.Вставить("ДатаКон", Дата(ДатаВыезда + ВремяКон)); Возврат Структура; КонецФункции |
|||
36
SherifSP
22.07.13
✎
19:01
|
(35) Структуру забыл переделать, но то ничего, главное факт)
|
|||
37
SherifSP
22.07.13
✎
19:20
|
Решил немного похвастаться кодом, если есть что то лишнее буду рад за подсказку
Функция ПреобразоватьДату(Время,ДатаВыезда) _ВремяНач = ?(СтрДлина(Время) = 10, "0" + Лев(Время,4)+":00", Лев(Время,5)+":00"); _ВремяКон = Прав(Время,5)+":00"; ВремяНач = ?(Сред(_ВремяНач,3,1) = ":", СтрЗаменить(_ВремяНач, ":", ""), СтрЗаменить(_ВремяНач, "-", "")); ВремяКон = ?(Сред(_ВремяКон,3,1) = ":", СтрЗаменить(_ВремяКон, ":", ""), СтрЗаменить(_ВремяКон, "-", "")); ДатаНач = Дата(Формат(ДатаВыезда,"ДФ=yyyyMMdd") + ВремяНач); ДатаКон = Дата(Формат(ДатаВыезда,"ДФ=yyyyMMdd") + ВремяКон); Структура = Новый Структура(); Структура.Вставить("ДатаНач", ДатаНач); Структура.Вставить("ДатаКон", ДатаКон); Возврат Структура; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |