# Programming

posted by .

This is a problem with mathmatics. the Question is: Federal law requires hourly employees be paid "time-and-a-half" for work in excess of 40 hours in a week. For example, if a person's hourly wage is \$8 and he works 60 hours in a week, his gross pay should be
(40 * 8) + (1.5 * 8 * (60-40)) = \$560

below is my formula:
egularwages = hoursworked * wages
grosspay = hoursworked * wages + (1.5 * wages * (hoursworked - hoursworked))
If wages <= 40 Then
txtGrossPay.Text = (regularwages * hoursworked)
ElseIf wages >= 40 Then
txtGrossPay.Text = (regularwages * hoursworked + (1.5 * wages * (wages - regularwages)))
End If

• Programming -

egularwages = hoursworked * wages

I assume there is an "r" in front of that? It should say regularwages?

"grosspay = hoursworked * wages + (1.5 * wages * (hoursworked - hoursworked)) "

hoursworked - hoursworked will always be zero.

I would start your if statement before this.
If hoursworked < = 40 then
grosspay = hoursworked * wages

Eslseif hoursworked > 40 (note: not greater than or equal to)
grosspay = (hoursworked * wages) + ((hoursworked - 40) * .5 * wages)
End if

I'd try something like that. See if it works better. Not sure of exact programming terms since it has been years, but think the idea is easier and more organized.

• Programming -

this technique didn't work, I keep getting double results.

• Programming -

The idea of Matts is sound, but if it was not implemented correctly, depending on the syntax of the language you are using, it may not work. Either you implement the following algorithm, or you post what you have done (code). Either way, we'd be in a better position to check things out.

OTrate=1.5 // rate of OT
threshold=40 // hours before OT kicks in
pay = hoursworked * wages
if (hoursworked>40) then
pay=pay+(hoursworked-threshold)*wages*(OTrate-1)
endif

• Programming -

Thank you so much for your help. I was able to get it to work. I had to remove txt statements and just assign grosspay and make one txt statement after end if. Otherwise Matt was correct. Thanks everyone, you were very helpful....