Форум: "Базы";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];
Внизподсчет стажа Найти похожие ветки
← →
Kley (2007-11-26 21:58) [0]Здравствуйте
подскажите может кто занимался подсчетом стажа и есть готовые наработки
задача посчитать стаж граждан
забивается период допустим 01.01.1996 по 02.02.1997 нужен
результат : 1 год 1 месяц 1 день
как реализовать?
← →
Виталий Панасенко(дом) (2007-11-26 22:44) [1]procedure DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word);
{ Corrected by Anatoly A. Sanko (2:450/73) }
var
DtSwap: TDateTime;
Day1, Day2, Month1, Month2, Year1, Year2: Word;
begin
if Date1 > Date2 then
begin
DtSwap := Date1;
Date1 := Date2;
Date2 := DtSwap;
end;
DecodeDate(Date1, Year1, Month1, Day1);
DecodeDate(Date2, Year2, Month2, Day2);
Years := Year2 - Year1;
Months := 0;
Days := 0;
if Month2 < Month1 then
begin
Inc(Months, 12);
Dec(Years);
end;
Inc(Months, Month2 - Month1);
if Day2 < Day1 then
begin
Inc(Days, DaysPerMonth(Year1, Month1));
if Months = 0 then
begin
Dec(Years);
Months := 11;
end
else
Dec(Months);
end;
Inc(Days, Day2 - Day1);
end;
← →
Petr V. Abramov © (2007-11-27 00:31) [2]с учетом больничных, праздников, отгулов, переносов праздников, армии, нахождения в СИЗО?
> подскажите может кто занимался подсчетом стажа
кто занимался, до сих пор занимаются, потому что законы меняются
если хочешь заняться - займись, без хлеба не останешься
← →
Германн © (2007-11-27 01:52) [3]
> Виталий Панасенко(дом) (26.11.07 22:44) [1]
И как тут не вспомнить "последний" $13-тый из "20 вредных советов".
http://www.podgoretsky.com/DM/BadTips.html
Жаль что он до сих пор не переложен на стихи.
:-)
← →
Kley (2007-11-27 07:37) [4]Спасибо понял
← →
Виталий Панасенко(дом) (2007-11-27 08:26) [5]
> Германн © (27.11.07 01:52) [3]
>
>
> > Виталий Панасенко(дом) (26.11.07 22:44) [1]
>
>
> И как тут не вспомнить "последний" $13-тый из "20 вредных
> советов".
> http://www.podgoretsky.com/DM/BadTips.html
> Жаль что он до сих пор не переложен на стихи.
> :-)
Возможно...Хотя разработчики Delphi очень уважительно относятся к ребятам, создавшим(собравшим) JEDI компоненты.. Откуда пример собственно и взят (JvDateUtil.pas)... Значит, кому-то это нужно..:-). И стаж как раз считают в годах, месяцах, днях(это не помню точно)...Говорят "проработал 25 лет", но никак не "1300 недель"
← →
ЮЮ © (2007-11-27 08:56) [6]> забивается период допустим 01.01.1996 по 02.02.1997 нужен
> результат : 1 год 1 месяц 1 день
> как реализовать?
Нормально - никак. Ибо в забитом периоде - 1 год 1 месяц 2 дня.
> задача посчитать стаж граждан
> забивается период
А если периодоа несколько? Будешь дни с днями опять складывать? А если их в сумме окажется 32, что делать станешь.
Есть такая метода.
1) устанавливается "начало периода".
Для стажа, естественно, начало трудлвой леятельности.
2) при перерывах в деятельности "начало периода" корректируется на КОЛИЧЕСТВО ДНЕЙ перерыва деятельности. Твк, например, поступают с периодом, за который дается отпуск/компенсация, когда в это период вкрадываются отпуска без сохранения заработной платы.
Тогда ждя подсяета стажв на ЗАДАННУЮ ДАТУ остается подсчитать разницу медлу ЗАДАННОЙ ДАТОЙ и скорректированной датой "начало трудовой деятельности". А как считать интервал в годах, месяцах и днях обсуждалось совсем недпвно:
http://delphimaster.net/view/2-1194516434/
З.Ы. Возьми методику подсчета стажа у заказчика.
← →
Anatoly Podgoretsky © (2007-11-27 09:11) [7]> Германн (27.11.2007 01:52:03) [3]
> Жаль что он до сих пор не переложен на стихи.
Саботажники, ни стихов ни фото.
← →
Anatoly Podgoretsky © (2007-11-27 09:12) [8]> Виталий Панасенко(дом) (27.11.2007 08:26:05) [5]
При этом подразумевают, что проработал не 25 лет, а около того.
← →
Anatoly Podgoretsky © (2007-11-27 09:13) [9]> ЮЮ (27.11.2007 08:56:06) [6]
Между 1 и 3
а. один
б. два
в. три
Неоднозначно когда говорим о периодах
← →
ЮЮ © (2007-11-27 09:26) [10]> Между 1 и 3
>
> а. один
> б. два
> в. три
>
> Неоднозначно когда говорим о периодах
Когда говорим о стаже работы и 1 - дата приема, 3 - дата увольнения, она же последний день работы, то совершенно однозначно (согласно последним постановлениям ВЦСПС) стаж работы = 3.
В общем случае, конечно, неоднозначно.
Для устранения неоднозначности достаточно определиться входят ли девая и правая граница интервала в подсет длительности интервала.
← →
Виталий Панасенко(дом) (2007-11-27 10:24) [11]
> Anatoly Podgoretsky © (27.11.07 09:12) [8]
>
> > Виталий Панасенко(дом) (27.11.2007 08:26:05) [5]
>
> При этом подразумевают, что проработал не 25 лет, а около
> того.
>
Как это ? Если 100% больничный начисляется только после 8 ПОЛНЫХ лет рабочего стажа - "около того" тут, на мой взгляд, не проходит... Кроме случая "более"...И иногда до пенсии людям не хватает 1-2 месяца...Я о сумме начислений
← →
Anatoly Podgoretsky © (2007-11-27 11:38) [12]> ЮЮ (27.11.2007 09:26:10) [10]
Я на это и намекаю, что сначала должны быть утверждены правила подсчета, для стажа третий вариант, но только не в dd.mm.yy, а в днях, для других случая нужно опять согласования правил.
← →
Anatoly Podgoretsky © (2007-11-27 11:49) [13]> Виталий Панасенко(дом) (27.11.2007 10:24:11) [11]
Я тоже подчеркну ПОЛНЫХ лет, высчитывание полных лет не вызывает никаких проблем, кроме последней даты, включать ее или не включать, но это вопрос соглашения.
← →
Труп Васи Доброго(заб. пароль) (2007-11-28 10:32) [14]Правила подсчёта утверждены пенсионным фондом и пока ни один из предложенных вариантов им не соответствует. Сам писал такую программку лет 7 назад, но всё осталось у заказчика, посему кодом не поделюсь ибо нету.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.04.20;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.056 c