Timelønn Beregning

stemmer
1

Jeg har en databasetabell som dette:

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 

Hvis 'Brian' jobbet 43.5151587 timer, jeg vil at det skal finne ut at han gjorde (40 * 15) + (3,5151587 * 20) = 670,303174.

Dette er en SQLite database, så jeg vet at jeg vil bruke:

SELECT wage FROM wagetable WHERE name LIKE 'Brian' AND 'HourNum' BETWEEN lowhours AND highhours;

Med en kombinasjon av gulv og% ... Jeg er bare ikke å sette logikken sammen i hodet mitt.

Vær oppmerksom på svar i C # og PHP akseptert, så jeg kan konvertere logikken til det jeg trenger. Jeg leter etter pseudo-kode, men vil akseptere trukket ut svar

Edit: Vær oppmerksom på ... De arbeidstimer vil aldri bli en eksakt heltall, hvorfor jeg la overlapp skje.

Edit2:

Jeg ønsker å ta en ansatte Utførte timeverk (eksempel: 43,5151587) og deretter innse at de første 40 timer, ble han gjør standard betale @ $ 15 en time. så (40 * 15) ... Deretter jobbet han 3.5151587 timer overtid @ $ 20 i timen. så (40 * 15) legge til det (3,5151587 * 20) ... Det totale beløpet tjent var 670,303174

Publisert på 16/08/2010 klokken 10:01
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Fra hva jeg samle fra innlegget ditt (psuedocode):

foreach pay_bracket p:
    if hours > p.length
        pay += p.length * p.pay
        hours -= p.length
    else
        pay += hours * p.pay
        end

Hvor lengther highhours- lowhours(og at lønn parentes er rett ved siden av hverandre, selvfølgelig).

Svarte 16/08/2010 kl. 10:11
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more