Ой
Процедура ПриОкончанииРедактированияСтроки(Флаг);
ДнейВсего=(Дата(Дата2)-Дата(Дата1));
Лет=Цел(ДнейВсего)/365;
Месяц=Цел((Цел(ДнейВсего)-Цел(Лет))*365)/30;
Дней =(Цел(ДнейВсего)-Цел(Лет)-Цел(Месяц))/30;
КонецПроцедуры
(0)
везде не прав
надо наверное так
ДнейВсего=(Дата(Дата2)-Дата(Дата1));
Лет=Цел(ДнейВсего/365);
ОставшихсяДней=(ДнейВсего-Лет*365);
Месяцев=Цел(ОставшихсяДней/30);
Дней =ОставшихсяДней-Месяцев*30;
Процедура ПолучитьСтажЗаПериод(Знач ДатаОкончанияПериода,
Знач ДатаНачалаПериода,
Лет=0, Месяцев=0, Дней=0) Экспорт
Если ДатаОкончанияПериода >= ДатаНачалаПериода тогда
Лет1 = Год(ДатаОкончанияПериода);
Месяцев1 = Месяц(ДатаОкончанияПериода);
Если НачалоДня(ДатаОкончанияПериода) <> НачалоДня(КонецМесяца(ДатаОкончанияПериода)) Тогда
Дней1 = День(ДатаОкончанияПериода);
Иначе
Дней1 = 30;//В каждом месяце ровно 30 дней
КонецЕсли;
Лет2 = Год(ДатаНачалаПериода);
Месяцев2 = Месяц(ДатаНачалаПериода);
Если НачалоДня(ДатаНачалаПериода) <> НачалоДня(КонецМесяца(ДатаНачалаПериода)) Тогда
Дней2 = День(ДатаНачалаПериода);
Иначе
Дней2 = 30;//В каждом месяце ровно 30 дней
КонецЕсли;
Лет = Лет1 - Лет2;
Месяцев = Месяцев1 - Месяцев2;
Дней = Дней1 - Дней2 + 1; //1 день на увольнение
Иначе
Лет = 0;
Месяцев = 0;
Дней = 0;
КонецЕсли;
КонецПроцедуры //ПолучитьСтажЗаПериод
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший