|
|
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
Буду очень признателен за помощь в расчете выслуги лет. Задача на первый взгляд простая. Имеются поля с периодами работы "с ... и по" и еще коэффициент, например 1,5 (то есть выслуга лет не всегда одинаковая). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2004, 22:58 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
В запросе? в годах с точностью до дня (может быть ошибка на текущем високосном годе на 0.003) Код: plaintext 1. 2. В форме на обработке события - в принципе аналогично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 02:11 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
давно было, сразу не вспомню... нужно прибавить поправку на високосные года, т.е. добавить столько единиц, сколько было между годами [РаботаС],[РаботаПо] високосных лет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 08:29 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
это пример расчета сколько полных лет - [BDay] - день рождения. (правда это на transact-sql) Код: plaintext смысл почти такой-же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 08:35 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
2 Z Неверно определяешь, является ли год високосным Условие високосности года: (year mod 400 = 0) or ((year mod 100 <> 0) And (year mod 4 = 0)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 09:14 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
неа, вычислияю кол-во лет по 356 дней между двумя датами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 09:21 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
мне кажется, проще считать через месяцы, не заморачиваясь на промежуточных високосных, а ошибка может возникнуть на 1 день только когда последний год високосный и дата окончания работы после 29 февраля. Вероятность ее значимости весьма невелика, хотя и можно учитывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 09:58 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за полезные советы. Еще одна трудность заключается в том, что поля в данными для выслуги находятся в разных столбцах таблицы. Возможно ли осуществлять просчет определенного диапазона, а потом все диапазоны сложить. Например, диапазон вида s1 ... po1 (a1 - коэффициент); s2.... po2 (a2) .... s5... po5(a5) и еще несколько таких диапазона. На выходе выслуга 5 лет 6 мес. 4 дня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2004, 19:49 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
Как обычно, умиляюсь, когда вижу "еще одна трудность.." :) В данном случае, это свидетельствует, видимо, о неправильной организации структуры БД, когда однородные данные разбросаны по разным полям, и за это, как всегда, приходится расплачиваться . Возможно, следовало бы вынести периоды работы в отдельную таблицу и связать ее с основной. Расчет в виде 5 лет 6 мес. 4 дня... А как считают ваши кадровики с коэффицентом? Я сталкивался с этим пару раз и не мог признать их способы корректными, а как правильно, добиться не удалось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2004, 01:03 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
Александр , попробую объяснить, что у меня за база. Существует програмная оболочка под DOS формирующая на основе заведенных в поля карточки данных базы в формате dbase IV, т.е. карточка это база (файл *.dbf). Например, vysluga.dbf. Как ни странно, но расчет выслуги производиться достаточно точно. Всегда больше на 1 день. Постепенно я хочу отойти от старой программы и постепенно все отчеты делаю в Access, используя данные уже созданных баз. Наши кадровики считают отчасти пользуясь этой программой. Кстати, в ней есть формула в поле для просчета выслуги, но на она завязана на имена полей таблицы. Если будет интересно представлю эти "математические изыски". Я считал, что в Access есть функции, которые могли бы коректно работать с датами, как часный случай расчет выслуги лет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2004, 20:25 |
|
||
|
Расчет выслуги лет
|
|||
|---|---|---|---|
|
#18+
Вопрос, можно ли было бы полагаться на эти функции. Вот для округления функции вроде бы есть, но оказалось, что существует штук 5 разных способов округления и стандартные функции не подходят, приходится писать свои. Может, и с выслугой лет так же? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2004, 20:34 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32372024&tid=1677280]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
168ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 495ms |

| 0 / 0 |
