Имя: Пароль:
1C
 
Количество дней от указанной даты до конца месяца
0 Ната48
 
10.09.15
21:57
Добрый вечер! Подскажите, пожалуйста как посчитать количество дней от даты до конца месяца ? БП 8.2
1 XLife
 
10.09.15
22:04
(0) позвать программиста
2 spectre1978
 
10.09.15
22:08
(КонецМесяца (Дата) - НачалоДня (Дата)) даст разницу времени в секундах, соответственно надо поделить на 60 * 60 * 24
3 spectre1978
 
10.09.15
22:09
если я ничо не забыл
4 Фрэнки
 
10.09.15
22:10
в запросах функция есть. РазностьДат
5 Записьдампа
 
10.09.15
22:13
(3) Не поделится. Надо вычитать из начала дня начало дня =)
6 Serg_1960
 
10.09.15
22:14
(3) Ты забыл что из даты можно получить день.
7 spectre1978
 
10.09.15
22:29
(5) делится.

если дата 30.09.2015, то

(КонецМесяца (Дата) - НачалоДня (Дата)) / (60 * 60 * 24)

дает 0,999988425925925925925925926

то бишь все корректно в общем-то, округлить до целого только нужно.
8 spectre1978
 
10.09.15
22:30
(6) кстати, да, и внутри месяца так проще.
9 palsergeich
 
10.09.15
23:17
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать РазностьДат(&Дата1,Дата2,ДЕНЬ) КАК РазностьВДнях";
Запрос.УстановитьПараметр("Дата1",Дата1);
Запрос.УстановитьПараметр("Дата2",Дата2);
Результат = Запрос.Выполнить().Выгрузить();
Результат.Следующий();
РазностьВДнях = Результат.РазностьВДнях;
10 palsergeich
 
10.09.15
23:18
Ой поправил
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать РазностьДат(&Дата1,КонецПериода(Дата1,МЕСЯЦ),ДЕНЬ) КАК РазностьВДнях";
Запрос.УстановитьПараметр("Дата1",Дата1);
Результат = Запрос.Выполнить().Выгрузить();
Результат.Следующий();
РазностьВДнях = Результат.РазностьВДнях;
11 palsergeich
 
10.09.15
23:20
А можно уж совсем точно

Запрос = Новый Запрос;
Запрос.Текст = "Выбрать РазностьДат(КонецПериода(&Дата1,ДЕНЬ),КонецПериода(&Дата1,МЕСЯЦ),ДЕНЬ) КАК РазностьВДнях";
Запрос.УстановитьПараметр("Дата1",Дата1);
Результат = Запрос.Выполнить().Выгрузить();
Результат.Следующий();
РазностьВДнях = Результат.РазностьВДнях;
12 palsergeich
 
10.09.15
23:22
Вместо Выгрузить() конечно же Выбрать()
13 Матиус
 
10.09.15
23:26
Всем спасибо. Правильный ответ (1)
14 Матиус
 
10.09.15
23:26
(0) А фото где?
15 Ната48
 
11.09.15
21:49
Спасибо всем большое! Буду пробовать))
16 Брегорьян
 
11.09.15
21:50
(15) без фото не взлетит, имей в виду
17 73с
 
11.09.15
21:59
А в клюшках насколько проще было:
Конмесяца(НашаДата) - НашаДата.....и делить ничего не надо
;-)
18 spectre1978
 
12.09.15
08:35
(17) Угу. Но если чуть-чуть усложнить комбинацию, задав к дате время и пожелав получить результат не в сутках, а в часах - в восьмерочной формуле будут минимальные изменения, а в семерке будет велосипед.
19 MaxS
 
12.09.15
08:43
а если количество _рабочих_ дней, то нужно календарь смотреть.
20 73с
 
12.09.15
08:55
(18) вот придумать зачем нужно знать количество дней до конца месяца могу запросто, а зачем нужно количество минут, секунд...да даже и часов затрудняюсь
21 Фокусник
 
12.09.15
09:02
(20) Зато при решении задачи со временем 8ка в явном плюсе, т.к. не нужно анализировать отдельно дату и отдельно время (часы,минуты,секунды)...

Итого, в сухом остатке: 8ка в плюсе, т.к. поделить на количество секунд в сутках НЕ проблема, тогда как в 7ке при работе с секундами возникает "велосипед с треугольными колесами" ;)
22 spectre1978
 
12.09.15
09:19
(20) любая задача по планированию чего-либо, каких-то работ, занимающих время. Я, помнится, колбасы коптил :) нужно было объем по печкам распихать с учетом того что термокамер  ограниченное количество и сам процесс занимает определенное время, также объем для размещения в печь ограничен. В семерке довольно неудобно это все было.
23 spectre1978
 
12.09.15
09:27
ну и совместимость, конечно. Почти во всех ОСях принято дату и время хранить вместе. Как осуществлять передачу даты-время в ком-объекты в семерке - я даже не представляю. Хорошо если хоть какой-то велосипед есть...
24 spectre1978
 
12.09.15
09:28
только строкой, наверное
25 Ната48
 
14.09.15
15:02
А если нужно посчитать количество рабочих дней (по производственному календарю)?
Независимо от того, куда вы едете — это в гору и против ветра!