Имя: Пароль:
1C
 
Дни до конца месяца
0 Ната48
 
19.09.15
00:05
Подскажите,пожалуйста, что не так пишу:реализуется путевка в текущем месяце, нужно подсчитать количество дней  по этой путевки от даты начала путевки до конца текущего месяца (здесь небольшой нюанс - путевка может закончиться в текущем месяце, а может продлиться в следующем) вот код:
Если
    ДатаОкончания >= КонецМесяца (СрокЗаезда) Тогда
        КоличествоДнейНС = (КонецМесяца (СрокЗаезда) - НачалоДня (СрокЗаезда))/86400-86400;
        Иначе КоличествоДнейНС = КолДней;
        КонецЕсли;

ДатаОкончания - это конец срока по путевке,
СрокЗаезда- это начало срока
КоличествоДнейНС - это количество дней в текущем месяце

если путевка закончилась в текущем месяце, то считается все правильно, а если в следующем, то дни до конца месяца считаются неправильно. помогите, запуталась совсем(((
1 Asmody
 
19.09.15
00:14
скорее всего дело в том, что НачалоДня - это первая секунда этого дня, а КонецМесяца - последняя секунда месяца.
2 Asmody
 
19.09.15
00:16
и зачем разделить на 86400, а потом еще  вычесть 86400?
3 Asmody
 
19.09.15
00:19
(НачалоДня(КонецМесяца (СрокЗаезда) ) - НачалоДня (СрокЗаезда))/86400
4 Ната48
 
19.09.15
00:22
Вычитаю потому что иначе дата будет больше на 1.  По видимому считаются дни без учета даты заезда
5 Ната48
 
19.09.15
00:33
Спасибо, получилось!!! И неправильно я вычитала 86400 - надо вычитать 1, конечно))) спасибо еще раз!!!
6 Asmody
 
19.09.15
00:33
(4) А почему из дней секунды вычитаешь?
7 Asmody
 
19.09.15
00:35
весело вы начало выходных проводите
8 Serg_1960
 
19.09.15
00:35
Запрос = Новый Запрос("ВЫБРАТЬ РАЗНОСТЬДАТ(&Дата1, &Дата2, ДЕНЬ) КАК РазностьВДнях");
Запрос.УстановитьПараметр("Дата1", Дата1);
Запрос.УстановитьПараметр("Дата2", Дата2);
Возврат Запрос.Выполнить().Выгрузить()[0].РазностьВДнях;
9 Serg_1960
 
19.09.15
00:40
ОбщегоНазначения.РазобратьРазностьДат() возвращает дни, месяцы, года...
10 Ната48
 
19.09.15
00:54
Спасибо всем, кто откликнулся!!! Воистину волшебный форум)))
Программист всегда исправляет последнюю ошибку.