gifts2017

Какая дата была/будет через N дней?

Опубликовал Яков Коган (Yashazz) в раздел Обработки - Универсальные обработки

Иногда надо очень быстро определить, какая дата будет через сколько-то дней, или была сколько-то дней назад.

Эта мини-обработочка предназначена для тех, кому тяжело считать дни "на пальцах" или каждый раз писать код. Достаточно указать исходную дату, направление расчёта и количество дней. Нужная дата будет показана как значение в поле и значение на календарике. Сделал для себя, мне просто надоело каждый раз подсчитывать, да ещё и ошибаться.

Расчёт ведётся без учёта текущей даты, т.е. два дня от 05.09.2010 это будет 07.09.2010.

Важно! Идёт расчёт календарных дней, а не банковских! Кому нужны банковские - скажите, сделаю.

Плюсить тут, пожалуй, не за что, но если кому просто пригодится - хорошо.

Скачать файлы

Наименование Файл Версия Размер
Calendator 56
.epf 8,21Kb
28.10.10
56
.epf 8,21Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Andrey Schiokin (Skif46) 28.10.10 22:24
два дня от 05.09.2010 это будет 07.05.2010


Сломал мозг. Поясни, пожалуйста, что это за арифметика. Мне почему-то кажется, что от пятого сентября два дня - это либо седьмое сентября (если в плюс), либо третье (если в минус). Я не прав?
2. Andrey Schiokin (Skif46) 28.10.10 22:37
И, кстати, нахрен внешняя обработка? Кто мешает прибавлять/отнимать от даты 86400?

Функция Датаминуc(НачДата,СколькоОтнять)
Датаминуc=НачДата-86400*СколькоОтнять;
Возврат Датаминуc;
КонецФункции
...Показать Скрыть

Как-то так...
3. Яков Коган (Yashazz) 29.10.10 08:56
(1) Опечатку исправил. Конечно же, там 07.09 имелось в виду.
А зачем внешняя обработка - я уже написал. Чтобы каждый раз вот этот твой код не мастерить. И чтобы пользователь, который таких вещей не знает, тоже мог быстро получить результат.
4. Ярослав Радкевич (WKBAPKA) 30.10.10 11:37
5. Яков Коган (Yashazz) 30.10.10 12:11
6. k k (cool.dkf) 02.11.10 13:40
7. Яков Коган (Yashazz) 02.11.10 17:10
(6) А можешь навскидку сказать, какое число и какой день недели будет через 35 дней? Без кодирования и загибания пальцев?

Можно подумать, я на что-то претендую. Вещица пригодилась мне, может пригодиться ещё кому-либо.
8. Игорь Воронкин (Воронкин) 03.11.10 09:17
Обработка хорошая. Есть пожелание - чтобы по умолчанию параметр "от даты" заполнялся текущей датой.
А критики, которые говорят зачем обработка - не работали бухгалтерами, чтобы сказать отпуск через 28 дней это какая дата. Или резидент через 183 дня - это когда...
9. Альтаир (Altair777) 04.11.10 18:12
А что, в 8-ке формульного калькулятора нет?
В 7-ке нормально считает.
Прикрепленные файлы:
10. Альтаир (Altair777) 04.11.10 18:21
Автор, а чуть-чуть продвинутее сделать? :)
Хотя бы как в Вин2008
Прикрепленные файлы:
11. Игорь <...> (I_G_O_R) 04.11.10 18:23
(9) есть табло:
'20101101' + 10 * 86400
12. Яков Коган (Yashazz) 05.11.10 20:52
(8), (10) а что, сделаю.
(9), (11) - согласен, однако ж способы не дюже удобные и не на всякого юзверя.
13. Ольга Николаевна (ron1) 23.05.13 16:32
Автор, а нельзя ли доработать, чтобы считала только рабочие дни? У нас почти во всех договорах количество рабочих дней.
14. Яков Коган (Yashazz) 23.05.13 17:57
(13) Исходя из чего, из какого календаря? Как будет узнавать о праздниках?
15. Ольга Николаевна (ron1) 24.05.13 00:11
Не знаю. (( Может сделать кнопку Настройка или Закладку? А там пользователь введет все дополнительные нерабочие дни, просто как список дат в маленькую табличную часть. Или даже мы согласны ввести ВСЕ выходные дни в году. И при подсчете даты обработка должна их пропускать. Естественно обработка должна как-то хранить эти даты по годам.
16. Ольга Николаевна (ron1) 24.05.13 00:21
Или написать её только для ЗУП с использованием зуповского календаря, где уже все выходные проставлены?
17. Ivon (Ivon) 15.03.16 12:33
ЗапросСмещенияДаты = Новый Запрос();
ЗапросСмещенияДаты.Текст = "Выбрать ДОБАВИТЬКДАТЕ(&Дата, ДЕНЬ, &Дней) КАК НужнаяДата";
ЗапросСмещенияДаты.УстановитьПараметр("Дата", НашаДата);
ЗапросСмещенияДаты.УстановитьПараметр("Дней", НужноеКоличествоДнейСоЗнаком);
НужнаяДата = ЗапросСмещенияДаты.Выполнить().Выгрузить()[0].НужнаяДата;
ДеньНеделиДатыДлинный = Формат(НужнаяДата, "ДФ=дддд"); // понедельник
ДеньНеделиДатыКороткий = Формат(НужнаяДата, "ДФ=ддд"); // Пн
...Показать Скрыть
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа