Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
4-1187099611
9899100
2007-08-14 17:53
2008.04.20
програмирование LPT порта


2-1206124619
Res
2008-03-21 21:36
2008.04.20
smtp


2-1206519877
Andrewtitoff
2008-03-26 11:24
2008.04.20
Как удалить файл из проекта Delphi 2007


2-1206437419
Armond
2008-03-25 12:30
2008.04.20
MS SQL


15-1204652410
Dmitry S
2008-03-04 20:40
2008.04.20
AV непонятный





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский