C# 小时工资计算

C# 小时工资计算,c#,php,pseudocode,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

我有这样一个数据库表:

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中的答案是可以接受的,因为我可以将逻辑转换为我需要的。我正在寻找伪代码,但会接受拖长的答案

编辑:请注意…工作时间永远不会是一个精确的整数,为什么我让重叠发生

编辑2:


我想拿一个员工的总工作时数(例如:43.5151587),然后意识到前40个小时,他的标准工资是每小时15美元。所以(40*15)…然后他加班3.5151587小时,每小时20美元。所以(40*15)再加上(3.5151587*20)…我从你的帖子(psuedocode)中收集到的总收入是670.303174


其中
length
highhours
-
lowhours
(当然,工资括号是紧挨着的)。

嗨,我不清楚逻辑。示例表之间文本中的数字与表本身中的数字不匹配-如果将两者对齐,可能会更容易。详细说明一下你想要的行为可能也没什么坏处。我是不是误解了什么
40*15=600
3.5151587*20=70.303174
,所以总收入是
670.303174
?对不起,该死的windows计算器给出了答案,我认为这是理所当然的…一周多的工作70美元对你来说有点低吗?你需要一份新工作Ppay括号很可能不会紧挨在一起。然而,从某种意义上说,我可以对它们进行排序。但这正是我想要的。谢谢我想补充一点,别忘了在else语句中将小时数设置为零没关系,我想这就是你为什么要结束的想法……我没有实现结束:)
foreach pay_bracket p:
    if hours > p.length
        pay += p.length * p.pay
        hours -= p.length
    else
        pay += hours * p.pay
        end