![]() |
![]() |
![]() |
|
Как вычислить разность дат в днях? | ☑ | ||
---|---|---|---|---|
0
svchernova
19.03.10
✎
16:54
|
Есть ли функция вычисления разности дат в днях, аналогичная РазностьДат в язык запросов?
|
|||
1
asady
19.03.10
✎
16:56
|
(0) есть.
|
|||
2
ЦыфроГад
19.03.10
✎
16:56
|
// Функции работы с разностью дат
// Получает разность календарных дат указанного вида. В случае ошибки возвращает -1 Функция ПолучитьРазностьДат(рНачДата,рКонДата,рВидРазности="ДЕНЬ") Экспорт Если не ЗначениеЗаполнено(рНачДата) или не ЗначениеЗаполнено(рКонДата) Тогда Возврат -1 КонецЕсли; Если рНачДата=рКонДата Тогда Возврат 0 КонецЕсли; строСтандПер="СЕКУНДА МИНУТА ЧАС ДЕНЬ НЕДЕЛЯ ДЕКАДА МЕСЯЦ КВАРТАЛ ГОД"; Если Найти(строСтандПер,рВидРазности)=0 Тогда рВидРазности="ДЕНЬ" КонецЕсли; тз="ВЫБРАТЬ РАЗНОСТЬДАТ(&НачДата,&КонДата,"+СокрЛП(рВидРазности)+")+1 КАК ПериодовВремени"; з=Новый Запрос(тз); Если рВидРазности="СЕКУНДА" или рВидРазности="МИНУТА" или рВидРазности="ЧАС" Тогда // ставим, как есть, с учётом времени Если рНачДата>рКонДата Тогда // всё наоборот рПервая=рКонДата; рВторая=рНачДата; коэф=-1; Иначе рПервая=рНачДата; рВторая=рКонДата; коэф=1; КонецЕсли; Иначе // ставим от начала дня Если рНачДата>рКонДата Тогда // всё наоборот рПервая=НачалоДня(рКонДата); рВторая=НачалоДня(рНачДата); коэф=-1; Иначе рПервая=НачалоДня(рНачДата); рВторая=НачалоДня(рКонДата); коэф=1; КонецЕсли; КонецЕсли; Попытка з.УстановитьПараметр("НачДата",рПервая); з.УстановитьПараметр("КонДата",рВторая); рРезультат=з.Выполнить().Выгрузить(ОбходРезультатаЗапроса.Прямой).Получить(0).ПериодовВремени; Если ТипЗнч(рРезультат)<>Тип("Число") Тогда Возврат -1 Иначе Возврат коэф*рРезультат КонецЕсли; Исключение Возврат -1 КонецПопытки; КонецФункции |
|||
3
Волшебник
19.03.10
✎
16:56
|
(КонецДня(Дата2)+1 - НачалоДня(Дата1)) / 86400
|
|||
4
koreav
19.03.10
✎
16:57
|
(2) да, серьезный подход
|
|||
5
Волшебник
19.03.10
✎
16:57
|
(2) Шедевр маразма.
|
|||
6
ЦыфроГад
19.03.10
✎
16:58
|
(5) универсальная функция которая возвращает разность в выбранном виде СЕКУНДА МИНУТА ЧАС ДЕНЬ НЕДЕЛЯ ДЕКАДА МЕСЯЦ КВАРТАЛ ГОД
|
|||
7
butterbean
19.03.10
✎
16:58
|
(6) в запрос загнать можно было и всё....
|
|||
8
Ненавижу 1С
гуру
19.03.10
✎
16:59
|
(НачалоДня(Дата2)-НачалоДня(Дата1))/86400
|
|||
9
koreav
19.03.10
✎
16:59
|
(6) индусский код
|
|||
10
ЦыфроГад
19.03.10
✎
17:00
|
(7) можно, но я когда то давно ее вставил в общие модули и не парюсь
|
|||
11
Ненавижу 1С
гуру
19.03.10
✎
17:00
|
(2) мало кода
|
|||
12
aka AMIGO
19.03.10
✎
17:01
|
но работает!! :))
|
|||
13
svchernova
19.03.10
✎
17:01
|
Всем спасибо :)))))))))))))
|
|||
14
wPa
19.03.10
✎
17:01
|
(3) Недопонял - на одну и ту же дату вернет 1 - разве нормально?
КонецДня - КонецДня / 86400 |
|||
15
vde69
19.03.10
✎
17:02
|
а почему никто не спросил как считать как считать неполный день?
|
|||
16
wPa
19.03.10
✎
17:03
|
(15) 1:10 ) с понедельника по пятницу
|
|||
17
Ненавижу 1С
гуру
19.03.10
✎
17:04
|
(15) код в (8) аналогичен РазностьДат(Дата1,Дата2,ДЕНЬ) в запросе, как просил автор
|
|||
18
svchernova
19.03.10
✎
17:05
|
Спасибо :)
|
|||
19
Ненавижу 1С
гуру
19.03.10
✎
17:06
|
(3) что-то ты не то написал
|
|||
20
NewNick
19.03.10
✎
17:28
|
(19) логика в (3) видимо в ответе на вопрос - сколько дней товар пролежал на складе если он прибыл в дата1 и убыл в дата2. тады формула в (3) верна )
|
|||
21
Ненавижу 1С
гуру
19.03.10
✎
17:30
|
(20) ого, какая телепатия
|
|||
22
svchernova
19.03.10
✎
17:31
|
(2) Код не работет в случае, если Дата1 = 19,03,2010 и Дата2=27,02,2011
|
|||
23
73
19.03.10
✎
17:34
|
(22) Выбрала самый короткий путь?
|
|||
24
svchernova
19.03.10
✎
17:35
|
да
|
|||
25
Нуралиев
19.03.10
✎
17:35
|
(2) Молодой человек, не хотите ли поработать у нас в фирме постановщиком задач? Как раз освободилось место, зарплата достойная.
|
|||
26
ЦыфроГад
19.03.10
✎
17:44
|
(25) А Вы правда тот самый Нуралиев?
|
|||
27
Нуралиев
19.03.10
✎
17:52
|
Конечно правда. Иногда переодеваюсь простым одинэсником и хожу по Багда... то есть, тьфу, по форумам.
|
|||
28
ЦыфроГад
19.03.10
✎
17:54
|
(22) важно что в качестве даты вы передаете дату, а не строку с датой
|
|||
29
Morphius
19.03.10
✎
17:58
|
(26) Yt negb
http://www.forum.mista.ru/index.php?user_id=12758 |
|||
30
ЦыфроГад
19.03.10
✎
17:58
|
(27) ну тогда большое спасибо за приглашение, но у меня сейчас большой проект по переводу компании с 7.7 на 8.1
|
|||
31
Нуралиев
19.03.10
✎
18:03
|
(30) Ну что ж, это Ваш выбор. А впрочем, жаль, очень конструктивно мыслите.
|
|||
32
AndreYAN
19.03.10
✎
18:04
|
(2) Хорошая функция :), чуток доделать и супер!
|
|||
33
Hans
19.03.10
✎
18:11
|
(0) Есть такая функция в типовой конфигурации ЗиУП в каком то общем модуле.
|
|||
34
Ненавижу 1С
гуру
22.03.10
✎
06:45
|
жжете
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |