Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.20;
Скачать: CL | DM;

Вниз

подсчет стажа   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.02 c
15-1204874837
@!!ex
2008-03-07 10:27
2008.04.20
Редакктор для редактирования Альфа канала


4-1178810111
йцукенг
2007-05-10 19:15
2008.04.20
Как получить handle элемента управления окна?


2-1206218273
Igor23
2008-03-22 23:37
2008.04.20
онлайн игра


2-1206386451
unknowing
2008-03-24 22:20
2008.04.20
Дескриптор Com-порта


2-1206266038
Mikhail
2008-03-23 12:53
2008.04.20
Вставить ссылку на сайт.