![]() |
|
Как конвертировать в дату? | ☑ | ||
---|---|---|---|---|
0
delusl
27.03.12
✎
21:11
|
Гуру, подскажите пожалуйста как проще всего конвертировать строку
"21-12-2011" в значение типа Дата? Должно же быть простое решение этой задачи. Проблема же не редкая. |
|||
1
Нуф-Нуф
27.03.12
✎
21:12
|
распарсь ее
|
|||
2
дущ
27.03.12
✎
21:19
|
(0) нет простого решения, а есть три метода Лев, Прав и Сред.
|
|||
3
Serg_1960
27.03.12
✎
21:20
|
Попробуй: Дата("21-12-2011" + " 0:00:00")
Если не получится СтрЗаменить() "-" на "." |
|||
4
andrewks
27.03.12
✎
21:21
|
(2) слишком много. всё можно сделать через Сред()
|
|||
5
andrewks
27.03.12
✎
21:22
|
(3) какая наивность
|
|||
6
andrewks
27.03.12
✎
21:23
|
(3) пардон, поправка с точками, наверное, может и помочь
|
|||
7
дущ
27.03.12
✎
21:24
|
(4) это я для красного словца
(5) нет, почему-же, может получиться. |
|||
8
andrewks
27.03.12
✎
21:26
|
да, с точками схавал
|
|||
9
andrewks
27.03.12
✎
21:27
|
но, в общем случае, всё равно придётся парсить. ибо нет гарантии, что вместо 2012 не придёт 12
|
|||
10
delusl
27.03.12
✎
21:31
|
(3) ура с точками вроде получается
ходя странно по описано поописанию формат вроде не тот. а то как-то неприлично писать позициятире = найти(докдата,"-") ; день = лев(докдата,позициятире-1); докдата1 = сред(докдата,позициятире+1); позициятире = найти(докдата1,"-") ; месяц = лев(докдата1,позициятире-1); год = сред(докдата1,позициятире+1); уx = дата(год,месяц,день); |
|||
11
hhhh
27.03.12
✎
21:34
|
что же тут неприличного?
|
|||
12
дущ
27.03.12
✎
21:48
|
(10) ну напиши так
ух = Дата(Прав(ДокДата, 4), Сред(ДокДата, 4, 2), Лев(ДокДата, 2)); легче будет? Это если конечно формат даты фиксированный, и вместо 2012 - 12 не придет. |
|||
13
Serg_1960
27.03.12
✎
21:50
|
Тьфу на вас - вы совсем уж без фантазии :)
ДобавитьМесяц(Дата(СтрЗаменить(ДокДата,"-",".") + " 0:00:00"),?(СтрДлина(ДокДата)=10,0,24000)) |
|||
14
delusl
27.03.12
✎
21:54
|
(12)
вместо 2012 - 12 не придет а день или месяц вместо 01 - 1 прити может |
|||
15
andrewks
27.03.12
✎
21:55
|
(14) это не страшно
|
|||
16
Serg_1960
27.03.12
✎
21:58
|
(чисто прикола ради)
ДатаСтрокой = "1-2-12"; Сообщить(ДобавитьМесяц(Дата(СтрЗаменить(ДатаСтрокой,"-",".") + " 0:00:00"),?(СтрДлина(ДатаСтрокой)=10,0,24000))); // "01.02.2012 0:00:00" |
|||
17
Deon
27.03.12
✎
22:01
|
Вроде бы + " 0:0:0" тоже работало
|
|||
18
дущ
27.03.12
✎
22:01
|
(13) хыхы, это мощно
(14) ДокДата = Прав("0" + ДокДата, 10); ух = Дата(Прав(ДокДата, 4), Сред(ДокДата, 4, 2), Лев(ДокДата, 2)); |
|||
19
Serg_1960
27.03.12
✎
22:04
|
(16) +
И даже строку "33-13-12" проглотит :) Но дата будет "02.02.2013 0:00:00"... что тоже верно... ммм... теоретически :)) |
|||
20
delusl
27.03.12
✎
22:16
|
(16) да круто, (19) а
ДатаСтрокой = "1-2-2012"; проглотит? |
|||
21
Serg_1960
27.03.12
✎
23:50
|
(20) Да, разумеется
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |