Имя: Пароль:
1C
1С v8
Подскажите как прописать в коде разницу в часах?
,
0 1CLinda
 
21.06.12
13:59
Здравствуйте!
Имеем такие параметры: Дата1=28.04.2012 8:30:00; Дата2=28.04.2012 16:05:00.
Как посчитать разницу в часах и минутах, чтобы на выходе мы получили в этом примере 7:35.
Я попробовала вот что использовать:
КоличествоЧасов=(Дата1 -Дата2)/3600;
Но эта строка возвращает мне 7:58.Когда часы указаны без минут,например 16:00,разница верна.
Может есть какие то приемы? Подскажите, пожалуйста!
1 butterbean
 
21.06.12
14:01
ты уже разберись в чем тебе нужна разница - если в часах/минутах, то зачем ты делишь на 3600??
2 butterbean
 
21.06.12
14:03
(1)+ получай все в минутах, потом преобразуй к ЧЧ:ММ
3 Cube
 
21.06.12
14:05
(0) Формат('0001.01.01' + (Дата2 - Дата1), "ДФ=ЧЧ:мм")
4 1CLinda
 
21.06.12
14:08
Cube, спасибо! попробую сейчас)
5 andrewks
 
21.06.12
14:09
Формат(Макс(Дата1,Дата2)-Мин(Дата1,Дата2),"ДФ=ЧЧ:мм"))
6 1CLinda
 
21.06.12
14:09
Вот сколько способов оказывается)спасибо!
7 Maxus43
 
21.06.12
14:10
я за запрос!
8 Cube
 
21.06.12
14:11
(5) Не взлетит, т.к. разница дат - число (время в секундах), а не дата...
9 HEKPOH
 
21.06.12
14:12
(5) не взлетит, потому как в (3) правильно
10 Cube
 
21.06.12
14:12
(7) Ну давай пример!)
11 1CLinda
 
21.06.12
14:13
Хотелось бы заодно еще что узнать: как сравнить по часам? Например узнать, что в интервале 28.04.2012 8:30:00 и 28.04.2012 16:05:00 есть обед с 12.00 по 13.00 и вычесть этот час! какая самая простая идея будет?
12 Cube
 
21.06.12
14:14
(11) Обед фиксированный? В одно и то же время?
13 andrewks
 
21.06.12
14:14
(8) ну да, ну да, чё-то я замечтался
14 kosts
 
21.06.12
14:14
(0)
Разница = Дата2 - Дата1; // При условии что Дата2 > Дата1
Д1 = Дата(2,2,2) + Разница;
Формат(Д1,"ДФ=ЧЧ:мм"))
15 andrewks
 
21.06.12
14:15
(8)
Формат(Дата(1,1,1)+Макс(Дата1,Дата2)-Мин(Дата1,Дата2),"ДФ=ЧЧ:мм"))
16 Cube
 
21.06.12
14:16
(11) У тебя будет три варианта:
1). Интервал до обеда
2). Интервал включает обед.
3). Интервал после обеда.

Добавляешь условия и сравниваешь даты, если надо, вычитаешь один час...
17 Maxus43
 
21.06.12
14:17
какой пример? этот чтоль?

ВЫБРАТЬ
   РАЗНОСТЬДАТ(&д1, &д2, ЧАС) КАК Часы

скучно, но зато запрос!
18 andrewks
 
21.06.12
14:17
(17) незачёт
19 Cube
 
21.06.12
14:18
(15) Не взлетит, т.к. к дате нельзя прибавить дату :)
Не выспался, что ли?)
20 Cube
 
21.06.12
14:18
(18) +1
21 Maxus43
 
21.06.12
14:19
шо не так?(
22 Cube
 
21.06.12
14:19
(21) Результат в виде ЧЧ:мм мы на выходе не получаем...
23 andrewks
 
21.06.12
14:21
(19) злые вы!  :)

попытка №3:

Сообщить(Формат(Дата(1,1,1)+(Макс(Дата1,Дата2)-Мин(Дата1,Дата2)),"ДФ=ЧЧ:мм"));
24 Maxus43
 
21.06.12
14:22
(22) про минуты чот пропустил в задаче)
25 Cube
 
21.06.12
14:22
(23) И получили (3) с небольшими изменениями :))))
26 Lama12
 
21.06.12
14:23
(3) Ээээ... я вот думаю...А если даты между собой имеют интервал больше 2-3 суток, то сколько часов функция покажет?
(0) Если даты различаются на несколько суток то результат тоже в часах должен быть?
27 1CLinda
 
21.06.12
14:28
Да,если интервал включает несколько суток, то разница в часах,но вычитаем только обеды.
28 Reset
 
21.06.12
14:29
(16) + Интервал, который включает обед частично(два подваринта, кусок обеда "сзади" и "спереди") + интервал который полностью совпадает с обедом + интервал который полностью находится внутри обеда (не перекрывая полностью(три подварианта))
:D
29 Cube
 
21.06.12
14:30
(27) Ууууу, "нифига у вас запросики, сказала база данных и повисла..." (с)
30 andrewks
 
21.06.12
14:30
(25) ага, получилась небольшая театральная сценка, ты в роли синтакс-контролёра, я в роли быдлокодера :)
31 Cube
 
21.06.12
14:30
(28) Само собой, но учитывая (27) это всё фигня... :)))
32 Reset
 
21.06.12
14:31
(27) во, еще масса фантазий с 2+1/3 обедами, попавшими в период
33 Cube
 
21.06.12
14:31
(30) Парное программирование?))
34 1CLinda
 
21.06.12
14:33
спасибо большое! поняла абсурдность посл.требования, пользователи просто сами не знают чего просят. спасибо!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший