![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Rambuz |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.8.2007 Репутация: нет Всего: нет |
Тема не новая и часто такой вопрос поднимается на многих форумах.
А в чем собственно проблема? Ведь на самом деле в стаже учитывается только количество полных лет. Но так уж повелось, что надо обязательно знать точное количество лет, месяцев и дней. Мне пару недель назад тоже потребовалось посчитать стаж и я взялся за изучение интернета. Там я набрел на мысль по поводу функциии в 1С "РазобратьРазностьДат()", ничего лучше я придумать не смог ![]() Дело оставалось за малым: найти функцию и переложить ее на Delphi. Чем я и занялся. Собственно задача состоит из двух этапов. 1. Т.к. в Delphi я не нашел функции добавления месяца к дате, то пришлось написать ее самому. Итак...
Кажись работает ![]() 2. Теперь займемся расчетом нашего стажа
На этом этапе задачу можно считать решенной. Но на всякий случай ма-а-аленькая полезность в виде функции сложения стажей. Маленькое замечание, опять же. На самом деле, сложение стажей, как мне кажется, задача более сложная, чем просто вычисление стажа, потому что нет конкретных дат по которым этот стаж расчитывать. Но ПФР рекомендовал брать количество дней в месяце, равным 30. Это вносит погрешность в расчет, но по крайней мере хоть что-то.
Не могу гарантировать, что код не содержит ошибок, я его вытаскивал из исходников и правил прямо в браузере. На предмет правильности расчетов могу сказать что считает стаж правльно, проверено. Принимаю ваши предложения и замечания, будет полезно. Это сообщение отредактировал(а) Rambuz - 26.1.2009, 19:02 |
||||||
|
|||||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
![]() А вообще модуль DateUtils предоставляет очень хорошие функции для твоих вечислений: YearsBetween, MonthsBetween, DaysBetween, еще пригодится DaysInYear. Все может быть гораздо проще. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Rambuz |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 24.8.2007 Репутация: нет Всего: нет |
Хм, действительно, есть такая функция IncMonth, только вот искал я ее в DateUtils, а находится она почему-то в SysUtils!
А с другой стороны самостоятельная работа для общего развития не повредит. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |