Не всегда правильный расчет возраста в формате "Лет месяцев дней"

Статус
В этой теме нельзя размещать новые ответы.

Ирина

Продвинутый
Здравствуйте.

На 29.11.2018 и 01.12.2018 возраст рассчитался некорректно. Разница в 2 дня, а итог один (24 года 9 месяцев 7 дней).
Версия 6.0.18. Посмотрела архив базы (версия 5.1.23) результат такой же.
Спасибо.
Дата_29.11.2018.pngДата_01.12.2018.png
 

Ирина

Продвинутый
Все-таки есть маленькая неточность.
Прибавляется 1 день в новом месяце, если в предыдущем месяце 30 дней.
Например (лет и месяцев не указываю) - 30 сентября количество дней 8, а 1 октября 10 дней.
28 февраля и 1 марта + 4 дня
 

Anti

Администратор
Команда форума
Спасибо большое. Теперь все хорошо.
Я счастлива)
Благодарим Вас за то, что помогаете делать нашу программу лучше!

Все-таки есть маленькая неточность.
Прибавляется 1 день в новом месяце, если в предыдущем месяце 30 дней.
Спасибо, Ирина, за внимательность. Действительно допустили ещё неточность. Исправим в ближайшее время.
 

Ирина

Продвинутый
Всем разработчикам большое спасибо за оперативность и разъяснения.
Благодаря Руне удалось систематизировать много данных, избавиться от бумажных ежедневников и excel, воплотить контроль во многих рабочих аспектах и т.п.
Чем глубже изучаешь конструктор, тем больше новых идей приходит.
И форум очень помогает. Иногда "нагромоздишь" структуру, а оказывается все можно было проще сделать)
Спасибо.
 

Ирина

Продвинутый
В версии 6.0.20 возникла неточность с подсчетом месяцев.
Расчет на текущую дату верный, а если расчет на определенную дату, тогда прибавляется лишний месяц. Но прибавляется своеобразно.
Пример:
спортсмен 1 - дата рождения 08.03.1994,
спортсмен 2 – дата рождения 31.03.1994.
Нужно рассчитать полный возраст (лет, месяцев, дней) на 11.02.2018.
Лишний месяц начинает прибавляться с января.
Если число рождения спортсмена меньше числа в расчетной дате, все считается верно.
Если число рождения спортсмена больше числа в расчетной дате, прибавляется 1 месяц.
 

Vladimir

Администратор
Команда форума
Вы меня опередили - хотел написать об истории создания алгоритма расчёта периода. :)
К сожалению сразу сообщу, что с определением периода оказалось не всё так просто. Так как учёт надо вести не по количеству дней, а привязываясь к прошлому месяцу, у которого число дней отличается как от текущего месяца, так и от месяца начальной даты, то результат при разных значениях может быть совершенно разный. И тут уже зависит от того алгоритма, который выбирает разработчик.
Мы посмотрели несколько примеров расчёта периода в Интернете, и во всех были так называемые ошибки: где-то грубые, а где-то - не принципиальные. Кроме того, изучили несколько алгоритмов, выложенных на различных форумах. К сожалению, у них у всех были очень грубые подсчёты.
Нам пришлось серьёзно поломать голову и мы создали универсальный алгоритм с учётом разных особенностей. Результат он даёт почти тот же, что и наш старый, но в нём убрались некоторые собственные ошибки.
Но всё-таки другую ошибку допустили. Ещё раз спасибо за замечание - исправим.
 

Ирина

Продвинутый
Тестировать новые версии на сокращенных примерах очень сложно, невозможно всего учесть.
В своих проектах (где ведется контроль за дебиторской задолженностью и пеням по просроченным платежам) не видно этого было, т.к. мало записей, да и не проверяла ничего.
А вот в проекте с записями в несколько тысяч, случайно увидела неточности, хотя пользуюсь им давно.

Алгоритм в Руне мне очень нравится, еще раз спасибо за Ваш труд.
 

Anti

Администратор
Команда форума
Ирина, мы Вам очень благодарны за внимательность и щепетильность! :)
Мы всегда используем максимально сокращённые примеры, поэтому тоже сами не всегда замечаем допущенные ошибки.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу