每小时工资计算

时间:2010-08-16 10:01:59

标签: c# php pseudocode

我有一个这样的数据库表:

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 

如果'Brian'的工作时间为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 :(得分:0)

从我收集的内容(伪代码):

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的位置(并且支付方式彼此相邻,当然)。