package main
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
)
|
|
|
|
var (
|
|
ErrHourlyRate = errors.New("invalid hourly rate")
|
|
ErrHoursWorked = errors.New("invalid hours worked per week")
|
|
)
|
|
|
|
func main() {
|
|
|
|
pay, err := payDay(81, 50)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
|
|
pay, err = payDay(80, 5)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
|
|
pay, err = payDay(80, 50)
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
}
|
|
|
|
fmt.Println(pay)
|
|
|
|
}
|
|
|
|
func payDay(hoursWorked, hourlyRate int) (int, error) {
|
|
|
|
if hourlyRate < 10 || hourlyRate > 75 {
|
|
return 0, ErrHourlyRate
|
|
}
|
|
if hoursWorked < 0 || hoursWorked > 80 {
|
|
return 0, ErrHoursWorked
|
|
}
|
|
|
|
if hoursWorked > 40 {
|
|
hoursOver := hoursWorked - 40
|
|
overTime := hoursOver * 2
|
|
regularPay := 40 * hourlyRate
|
|
return regularPay + overTime, nil
|
|
}
|
|
|
|
return hoursWorked * hourlyRate, nil
|
|
|
|
}
|