Показать сообщение отдельно
  #5  
Старый 26.05.2016, 18:37
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

ну, пример я тебе дал.
Как счтать с точностью "до дня" - это надо тебе определиться самому. Точнее - как переводить получившиеся дни в месяцы. Могу предложить такой вариант: считаем все периоды в днях. Потом берем какую-нить базовую дату, прибавляем к ней полученное кол-во дней и уже между этими 2мя датами считать через YearsBetween, MonthsBetween, DaysBetween, IncYear, IncMonth (для последних 2х можно передавать отрицательное значение для вычитания).
С перерывами не понял твой ответ. Если, допустим, перерыв, например, меньше месяца не считается как прерывание стажа, то цикл подсчета надо изменить таким образом, что бы он вычислял "непрерывный" интервал, а потом уже считал кол-во дней в этом интервале.

ЗЫ. Аккуратнее с DaysBetween функцией. Она считает кол-во ПОЛНЫХ дней. Т.е. если у тебя где-то попадется dStart или sEnd со временем, то можно получить немного неправильный результат.
Ответить с цитированием