|
как находить разность времени ? | ☑ | ||
---|---|---|---|---|
0
Олеся999
13.05.15
✎
13:36
|
Подскажите пожалуйста как находить разность времени ?
допустим автомобиль выехал 04:20:00 и приехал 06:30:00 должно получиться что он был в движении 02:10:00 как можно вычислить? |
|||
1
1Сергей
13.05.15
✎
13:36
|
отнять
|
|||
2
ДенисЧ
13.05.15
✎
13:36
|
06:30:00 - 04:20:00
|
|||
3
GROOVY
13.05.15
✎
13:38
|
Еще запросом можно: РАЗНОСТЬДАТ
|
|||
4
D_E_S_131
13.05.15
✎
13:40
|
После (2) надо только из секунд в часы и минуты перевести, но это уже задача для начальной школы (если не ошибаюсь).
|
|||
5
kortun
13.05.15
✎
13:41
|
ВремяВПути = Формат(Дата(1, 1, 1) + (Приехал - Выехал), "ДФ=ЧЧ:мм:сс");
лови, но это если выехал и приехал в один день |
|||
6
Torquader
13.05.15
✎
13:43
|
(5) В чём проблема в вычитании дат за разные дни, особенно, учитывая, что даты в 1С хранятся в секундах.
|
|||
7
kortun
13.05.15
✎
13:45
|
(6) в вычитании проблем нету, в отображении по моему примеру будет проблема, там показывает только время до 24 часов
|
|||
8
kortun
13.05.15
✎
13:46
|
+(7) просто надо будет формат отображения переделывать
|
|||
9
Олеся999
13.05.15
✎
15:11
|
(5) Да там в 1 день )
{Форма.Форма.Форма(173)}: Преобразование значения к типу Число не может быть выполнено Нс2.ПробегЗаДень = Формат(Дата(1, 1, 1) + (AG.TripEndRealTime - AG.TripStartRealTime), "ДФ=ЧЧ:мм:сс"); |
|||
10
Олеся999
13.05.15
✎
15:13
|
хотя ПробегЗаДень тип число
|
|||
11
ДенисЧ
13.05.15
✎
15:14
|
(10) А зачем ты числу строку присваиваешь?
|
|||
12
kortun
13.05.15
✎
15:24
|
(9) формат возвращает строку
Если Нс2.ПробегЗаДень у тебя число, то тогда делай проще Нс2.ПробегЗаДень = AG.TripEndRealTime - AG.TripStartRealTime; Нс2.ПробегЗаДень у тебя будет хранить время в секундах |
|||
13
D_E_S_131
13.05.15
✎
15:36
|
(10) "должно получиться что он был в движении 02:10:00" — таких чисел не бывает.
|
|||
14
spectre1978
13.05.15
✎
16:25
|
так в чем проблема время в секундах пересчитать в сутки, часы и минуты?
|
|||
15
Cap_1977
13.05.15
✎
16:26
|
Видимо как то связано с религией
|
|||
16
spectre1978
13.05.15
✎
16:28
|
делим на 24*60*60*60 - получаем сутки. Остаток от деления делим на 60*60*60 - получаем часы. Остаток от этого деления делим на 60*60 - получаем минуты. То что осталось - это будут секунды, если они нужны. Как-то так...
|
|||
17
spectre1978
13.05.15
✎
16:28
|
это навскидку, возможно где-то неточно написал
|
|||
18
spectre1978
13.05.15
✎
16:31
|
наверно, лишнее умножение на 60. Более правильно, видимо, вот так:
24*60*60 60*60 60 |
|||
19
qeos
13.05.15
✎
16:31
|
60*90*60
|
|||
20
Бледно Золотистый
13.05.15
✎
16:32
|
(16) Это через ж... Секунды прибавляем к пустой дате, далее уже из нее получаем что нам нужно, как выше писали.
|
|||
21
qeos
13.05.15
✎
16:32
|
оу.. наоборотже.. 90*60*90
|
|||
22
spectre1978
13.05.15
✎
16:35
|
(20) резонно, так еще проще
|
|||
23
Олеся999
14.05.15
✎
07:04
|
Делала так:
Нс2.ПробегЗаДень = AG.TripEndRealTime - AG.TripStartRealTime; //Преобразование значения к типу Число не может быть выполнено Нс2.ПробегЗаДень = Формат(Дата(1, 1, 1) + (AG.TripEndRealTime - AG.TripStartRealTime), "ДФ=ЧЧ:мм:сс"); //Преобразование значения к типу Число не может быть выполнено Нс2.ВремяВПутиЗаДень = (НачалоДня(AG.TripEndRealTime)-НачалоДня(AG.TripStartRealTime)) /(60*60*24); //Работает только эта строка но она показывает в сутках как можно еще попробовать? |
|||
24
ЧеловекДуши
14.05.15
✎
07:18
|
(23) Начни пользоваться отладчиком.
Читай весь текст в сообщении об ошибке. ...голова не только что бы есть... :) |
|||
25
1Сергей
14.05.15
✎
07:19
|
(23) откуда взялось AG.TripEndRealTime ? Вы уверены, что это дата?
|
|||
26
ЧеловекДуши
14.05.15
✎
07:20
|
+(23) Какого типа значения
TripEndRealTime TripStartRealTime Зачем ты все в формат суешь???!!! Тебе по русски написали, что Формат возвращает строку. (если тебе нежна дата) Используй функцию: Дата(Год,месяц,день,Час,минута,сек) |
|||
27
kosts
14.05.15
✎
07:21
|
(23) > AG.TripEndRealTime - AG.TripStartRealTime
что из этого явно не является типом датой. Порылся в инете и вижу что TripEndRealTime и TripStartRealTime являются типами BSTR. // TripEndRealTime | Время окончания фактическое | BSTR | только чтение |
|||
28
ЧеловекДуши
14.05.15
✎
07:22
|
(23) >>>ПробегЗаДень
Строка вида "01.01.0001 10:43:33" никогда не сможет быть преобразовано в число!!! :) |
|||
29
Фокусник
14.05.15
✎
07:29
|
(23) Покажи что находится в исходных данных:
Сообщить(AG.TripEndRealTime); Сообщить(AG.TripStartRealTime); |
|||
30
Олеся999
14.05.15
✎
07:33
|
(23)
AG.TripEndRealTime это время начала фактическое AG.TripStartRealTime это время окончания фактическое |
|||
31
Олеся999
14.05.15
✎
07:35
|
(29) 03.07.2009 19:03:45
03.07.2009 18:49:06 05.07.2009 13:27:13 05.07.2009 13:26:18 06.07.2009 23:59:29 06.07.2009 02:23:18 07.07.2009 22:28:53 07.07.2009 00:01:31 08.07.2009 23:59:57 08.07.2009 00:25:22 09.07.2009 19:50:34 09.07.2009 00:00:29 10.07.2009 15:29:39 10.07.2009 15:27:28 12.07.2009 11:56:18 12.07.2009 11:51:53 13.07.2009 23:59:00 13.07.2009 05:49:53 14.07.2009 23:59:50 14.07.2009 00:01:02 15.07.2009 23:59:32 15.07.2009 00:01:52 16.07.2009 23:58:19 16.07.2009 00:01:34 17.07.2009 22:29:04 17.07.2009 00:00:21 18.07.2009 23:59:53 18.07.2009 06:45:34 19.07.2009 23:59:04 19.07.2009 00:00:01 20.07.2009 23:59:12 20.07.2009 00:01:06 21.07.2009 23:20:11 21.07.2009 00:01:14 22.07.2009 23:59:56 22.07.2009 05:49:56 23.07.2009 18:35:22 23.07.2009 00:00:02 24.07.2009 23:28:28 24.07.2009 06:09:28 25.07.2009 21:12:33 25.07.2009 05:38:58 26.07.2009 21:50:48 26.07.2009 06:52:58 27.07.2009 21:50:00 27.07.2009 06:12:22 28.07.2009 16:39:50 28.07.2009 07:02:22 29.07.2009 23:59:42 29.07.2009 17:10:14 30.07.2009 18:24:46 30.07.2009 00:00:16 31.07.2009 23:59:22 31.07.2009 05:47:28 01.08.2009 09:15:39 01.08.2009 00:00:02 02.08.2009 22:20:32 02.08.2009 01:41:29 03.08.2009 21:25:22 03.08.2009 05:49:04 04.08.2009 09:20:58 04.08.2009 09:18:34 |
|||
32
Фокусник
14.05.15
✎
07:36
|
(30) Если в Нс2.ПробегЗаДень - находится строка:
То должно сработать:
Если в Нс2.ПробегЗаДень находится "дата", попробуй так:
|
|||
33
Фокусник
14.05.15
✎
07:46
|
(31) Еще вариант, если в AG.TripEndRealTime тип дата находится:
1.Если в Нс2.ПробегЗаДень - находится строка:
2.Если в Нс2.ПробегЗаДень находится "дата":
|
|||
34
kosts
14.05.15
✎
07:49
|
(30)
> AG.TripEndRealTime это время начала фактическое > AG.TripStartRealTime это время окончания фактическое Тыж программист, и должна отличать дату от строки содержащей дату. |
|||
35
Олеся999
14.05.15
✎
07:53
|
(33) Спасибо 2-ая рабочая :)
|
|||
36
1Сергей
14.05.15
✎
08:03
|
(35) значит в (10) ложь?
|
|||
37
Фокусник
14.05.15
✎
08:05
|
(36) методом "научного тыка" выяснили, что в AG.TripEndRealTime, AG.TripStartRealTime, а также в Нс2.ПробегЗаДень находятся "даты" :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |