Asked by Lee
                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
Please help by telling me what I have wrong? Thanks..
            
        (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
Please help by telling me what I have wrong? Thanks..
Answers
                    Answered by
            MattsRiceBowl
            
    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.
    
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.
                    Answered by
            Lee
            
    this technique didn't work, I keep getting double results.  
    
                    Answered by
            MathMate
            
    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
    
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
                    Answered by
            Lee
            
    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....
    
                                                    There are no AI answers yet. The ability to request AI answers is coming soon!
                                            
                Submit Your Answer
We prioritize human answers over AI answers.
If you are human, and you can answer this question, please submit your answer.