mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-04-21 21:27:36 +00:00
Adding time and a half pay calculator algorithm to financial folder (#12662)
* Create time&half-pay.py * Update time&half-pay.py * Update time&half-pay.py * Rename time&half-pay.py to time_and_half_pay.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update time_and_half_pay.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update time_and_half_pay.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update time_and_half_pay.py * Update time_and_half_pay.py * Update time_and_half_pay.py --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Maxim Smolskiy <mithridatus@mail.ru>
This commit is contained in:
parent
c585cb1227
commit
a1aa6313e0
40
financial/time_and_half_pay.py
Normal file
40
financial/time_and_half_pay.py
Normal file
@ -0,0 +1,40 @@
|
||||
"""
|
||||
Calculate time and a half pay
|
||||
"""
|
||||
|
||||
|
||||
def pay(hours_worked: float, pay_rate: float, hours: float = 40) -> float:
|
||||
"""
|
||||
hours_worked = The total hours worked
|
||||
pay_rate = Amount of money per hour
|
||||
hours = Number of hours that must be worked before you receive time and a half
|
||||
|
||||
>>> pay(41, 1)
|
||||
41.5
|
||||
>>> pay(65, 19)
|
||||
1472.5
|
||||
>>> pay(10, 1)
|
||||
10.0
|
||||
"""
|
||||
# Check that all input parameters are float or integer
|
||||
assert isinstance(hours_worked, (float, int)), (
|
||||
"Parameter 'hours_worked' must be of type 'int' or 'float'"
|
||||
)
|
||||
assert isinstance(pay_rate, (float, int)), (
|
||||
"Parameter 'pay_rate' must be of type 'int' or 'float'"
|
||||
)
|
||||
assert isinstance(hours, (float, int)), (
|
||||
"Parameter 'hours' must be of type 'int' or 'float'"
|
||||
)
|
||||
|
||||
normal_pay = hours_worked * pay_rate
|
||||
over_time = max(0, hours_worked - hours)
|
||||
over_time_pay = over_time * pay_rate / 2
|
||||
return normal_pay + over_time_pay
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Test
|
||||
import doctest
|
||||
|
||||
doctest.testmod()
|
Loading…
x
Reference in New Issue
Block a user