Как определить логику программирования для рабочего времени, учитывая сверхурочные. - PullRequest
1 голос
/ 24 февраля 2012

Я запрограммировал систему ударных часов. Мне нужно изменить его, чтобы он соответствовал калифорнийским правилам сверхурочной работы, чтобы, если кто-то работает более 8 часов в сутки, он получал сверхурочную работу. Я нахожусь в тупике о том, как сделать это, что не требует больших вычислительных ресурсов.

Наши удары округляются до 15-минутных интервалов, что означает, что люди будут наносить удары в 8:00, 8:15, 8:30 и так далее.

1 Ответ

2 голосов
/ 25 февраля 2012

Так что, если кто-то начинает в 8:00 в понедельник, работает в общей сложности 8 часов и начинает в 7:00 во вторник, он получает сверхурочный час?

Предположим, у вас есть список пар времени начала / окончания для данного сотрудника. Этот список должен включать пары времени начала / окончания даты предыдущего периода времени.

  1. Получить первую пару времени начала / остановки из текущего периода оплаты.
  2. Получить предыдущую пару времени начала / остановки.
  3. Определяет интервал в часах и долях часов между предыдущим и текущим запусками.
  4. Если интервал больше или равен 24, получите следующую пару времени начала / окончания даты следующего периода выплаты и перейдите к 2. Выход, если больше нет пар времени начала / остановки даты.
  5. В противном случае, если интервал меньше 24, рассчитайте сверхурочное время в текущей паре времени начала / окончания даты. Арендодатель (24 - интервал) и количество часов, отработанных в текущей паре время начала / окончания.
  6. Получить следующую текущую пару начального / конечного периода даты / времени. Выйдите, если больше нет пар начала / окончания даты и времени.
  7. Удерживать предыдущую пару времени начала / окончания.
  8. Перейти к 3.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...