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