#0
by BVM
Как в 1с посчитать кол месяцев между двумя датами. Пример Дата1 04.2005, Дата2 04.2006 КолМес должно быть 12
#3
by VadimG
Сообщить((ДатаГод(КонДата)-ДатаГод(НачДата))*12+(ДатаМесяц(КонДата)-ДатаМесяц(НачДата)));
#10
by VadimG
Тесты показали следующее: 1. Если первая дата равна к примеру 01.01.21, а вторая 01.01.05, то твоя функция виснет в бесконечном цикле. =) (хотя, конечно, и моя выдаёт отрицательное значение). 2. Замер производительности. Дата1 = 01.01.60, Дата2 = 31.12.05. Тест субъективен, конечно, т.к. запускался 1 раз, но всё равно, результат говорит сам за себя. Моя строка отрабатывает за 0,000520, а твоя за 0,000840!
#12
by VadimG
Тогда доработаем. Получаем: Сообщить((ДатаГод(КонДата)-ДатаГод(НачДата))*12+(ДатаМесяц(КонДата)-ДатаМесяц(НачДата))-?(ДатаЧисло(КонДата)<ДатаЧисло(НачДата),1,0));
#15
by VadimG
Частный случай можно описать.. =) Нуу, давай ещё отдельными инструментами вычислять... =)))
#20
by Рупор абсурда
а) на порядок медленней б) кое-где может и не заработать в) сертификацию не пройдёт
#25
by smaharbA
Тогда напрямую через ие, тока ие в самом начале конфы определить На порядок не медленнее, проверь
#35
by VadimG
Гы. =) 1 тест. дата1 = 01.01.60, дата2 = 01.01.05. Результаты: моя за 0,000690, твоя за 0,000609. Супер! =) Жмём руки друг другу?
#36
by 427
Воттттт такой толщины... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ____. . . . . . . . . . . . . . . . .,,,,, . . . . . . . . . . . . . .____ . . . . . . . . . . . . . . ____(. . . . . . . . . . . . . . . , ~~“”. . .””~~, . . . . . . . . / . . . . ) ____ . . . . . . _(____. . . . . . . _________/. . .(O . . . O). . ______/. . . . . . ._____). . . . . (______. . . . . . . . ________{ . . . . . .L . . . . . } _____ . . . . . . ._____) . . . . . . . (____ . . . . . . . / . . . . . . . . . . ______/. . ./. . . . . . .. . . . . . _____). . . . . . . . . (_________ /. . . . . . . . . . .’-, . . . . . . . ,-‘ . . . . . . . . _________) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .``~~~~`` . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _________________________________________________________...___________ | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' | ' |' |' |' |' |' |' |' |' |' |' |…'|' |' |' |' |' |' |' |' | |_____1____2____3____ 4_____5____6____7_____8____9____10__...__20____30_|
#37
by Рупор абсурда
Добавишь проверку , проиграешь в скорости ... Да и код твой куда более поганей моего ...
#38
by VadimG
Ты свою функцию то проверял, если ??? В цикле вешается. В курсе? А красивость кода - это личное дело каждого.
#40
by VadimG
Нет. Просто перепутал местами даты. Попробуй Дата1=01.01.05, а дата2=01.01.60. Висяк гарантирую.. =)
#41
by VadimG
+ Рупор, сегодня тяпница, давай не будем уже спорить, а? Или тебе надо, чтобы я признался, что твоё решение оптимизировано для читаемости и скорости работы? Аллилуя! Твоя функция - рулез, а моя - кривая недоделка. Чес слово! =)
#49
by smaharbA
Чего какие проценты, я не понял... ты его что в цикле крутил вместе с созданием объекта ?
#51
by VadimG
Какой цикл? Твой вариант по определению будет тормозом. Чего спорить то? Скриншот выслать?
#52
by smaharbA
Я не спорю, что за проценты то ? Да и создание объекта недолжно входить в код, это должнобыть определено до(в начале конфы или обработки)
#54
by VadimG
Конечно! Я субъективно оценил решение в целом, а не отдельные операторы! полностью прав, но у меня сейчас нет времени это сделать. Тело модуля я уже запостил, так что кто-то из вас может поэкспериментировать.. Результаты в студию!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v 8.0 Как можно посчитать количество рабочих дней между двумя датами
- Вычислить количество месяцев между двумя датами.
- Как посчитать количество месяцев между двумя датами?
- число полных месяцев (с 1го по последее число) между датами
- v7: Не могу понять, как посчитать остатки на каждый день
- Надо посчитать среднее количество строк таблицы документов (1с77)
- v7: Посчитать кол-во проводок за месяц
- Как посчитать число месяцев между ДатаНачало и ДатаКонца?
- Посчитать количество выходных дней между двумя датами
В этой группе 1С
- Как установить отбор при выборе договора контрагента?
- Как в отчете убрать нули?
- 7.7 ПУБ 2.8 (293) Переуступка долга
- 7.7. Можно ли запретить перепроведение документа?
- Как получить список открытых объектов?
- как 1с выделить больше памяти? sql
- Очистка справочников
- Как получить колличество записей в рег сведений (число)
- Выгрука из 1С в Paradox
- как присвоить значение константе
- v7. ЗиК. Изменения в расчёте оплаты праздничных дней
- Помогите найти внешнюю обработку приказа на отпуск для камина2.0
- Сопоставить имя пользователя 1с с процессом sql
- можно ли получать ГУИД?
- Импорт документов из Торговля+Склад в 1С:Бухгалтерия
- V7.7 1С бух и счет 01.1 хоз. операции
- Объект поставщика не редактируется
- свойства полей ввода в форме списка справочника
- Как из подчинённого справочника, передать значение владельцу?
- как выключить 1с77 *.ват файлом?