Вычислить сколько дней До дня рождения 1С
ДатаРождения = '00010101';
ВвестиДату(ДатаРождения, "Когда вы родились?");
Сегодня = НачалоДня(ТекущаяДата());
ДеньРождениявэтомгоду = Дата(Год(Сегодня),
Месяц(ДатаРождения),
День(ДатаРождения));
Если Сегодня > ДеньРождениявэтомгоду тогда;;
Осталосьсекунд = ДеньРождениявэтомгоду - Сегодня;
ОткрытьЗначение("До вашего дня рождения в этом году осталось " + ОсталосьСекунд/(3600*24) +" дней!");
Иначе
Осталосьсекунд = ДеньРождениявэтомгоду - Сегодня;
ОткрытьЗначение("До вашего дня рождения в этом году осталось " +ОсталосьСекунд/(3600*24) +" дней!");
КонецЕсли;
> теперь Программа правильно выводит кол во дней, если дата в этом году
> еще не прошла, но если прошла, то выдает неправильное число
Ответы (1 шт):
Автор решения: Андрей Галюченко
→ Ссылка
что бы программа перестала считать в обратную сторону, нужно добавить один год к дате, в случае если дата в этом году уже наступила, то есть:
ДатаРождения = '00010101';
ВвестиДату(ДатаРождения, "Когда вы родились?");
Сегодня = НачалоДня(ТекущаяДата());
ДеньРождениявэтомгоду = Дата(Год(Сегодня),
Месяц(ДатаРождения),
День(ДатаРождения));
Если Сегодня > ДеньРождениявэтомгоду тогда;;
ДеньРождениявэтомгоду = ДобавитьМесяц(ДеньРождениявэтомгоду,12);
Осталосьсекунд = ДеньРождениявэтомгоду - Сегодня;
ОткрытьЗначение("До вашего дня рождения в этом году осталось " + ОсталосьСекунд/(3600*24) +" дней!");
Иначе
Осталосьсекунд = ДеньРождениявэтомгоду - Сегодня;
ОткрытьЗначение("До вашего дня рождения в этом году осталось " +ОсталосьСекунд/(3600*24) +" дней!");
КонецЕсли;