Почасовой расчет заработной платы - PullRequest
1 голос
/ 16 августа 2010

У меня есть таблица базы данных, подобная этой:

wagetable
 name     lowhours  highhours  wage 
 Default  0         40         10   
 Default  40        9999       15   
 Brian    0         40         15   
 Brian    40        50         20   
 Brian    50        9999       22   
 Chad     0         40         13   
 Chad     40        9999       17 

Если «Брайан» работал 43,5151587 часов, я хочу выяснить, что он сделал (40 * 15) + (3,5151587 * 20) = 670,303174.

Это база данных SQLite, поэтому я знаю, что буду использовать:

SELECT wage FROM wagetable WHERE name LIKE 'Brian' AND 'HourNum' BETWEEN lowhours AND highhours;

С комбинацией пола и% ... Я просто не собираю логику в моей голове.

Обратите внимание, что ответы на C # и PHP приняты, поскольку я могу преобразовать логику в то, что мне нужно. Я ищу псевдокод, но приму растянутые ответы

Редактировать: пожалуйста, обратите внимание ... Отработанные часы никогда не будут точными целыми числами, поэтому я допускаю перекрытие.

Edit2:

Я хочу взять у сотрудника общее количество отработанных часов (пример: 43.5151587), а затем понять, что в первые 40 часов он делал стандартную зарплату по 15 долларов в час. так (40 * 15) ... Затем он работал 3,5151587 часов сверхурочно @ 20 долларов в час. Итак (40 * 15) добавить к нему (3.5151587 * 20) ... Общая заработанная сумма была 670.303174

1 Ответ

0 голосов
/ 16 августа 2010

Из того, что я почерпнул из вашего поста (psuedocode):

foreach pay_bracket p:
    if hours > p.length
        pay += p.length * p.pay
        hours -= p.length
    else
        pay += hours * p.pay
        end

Где length равно highhours - lowhours (и, конечно же, скобки для выплат находятся рядом друг с другом).

...