首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Awk加班工资计算

Awk加班工资计算
EN

Stack Overflow用户
提问于 2014-09-29 04:12:53
回答 2查看 339关注 0票数 1

对于以下数据,我正在尝试使用awk文件来确定随时间推移的总数。(加班规则:工作超过40小时,每小时加班后获得1.5倍工资)

代码语言:javascript
复制
Natlie Attired 902-555-1234 10.40 44 
Guy Wyre 401-555-3421 11.75 40

这是我到目前为止所拥有的

代码语言:javascript
复制
BEGIN{
     FS=" "
}
function total(){
    hours = awk {print $5}
    rate = awk {print $4}
    if(hours<=40)
        sum=rate*hours
        return sum
    else
        sum=(hours - 40 * 1.5 * rate) + (rate*hours)
        return sum
}

{
    printf("%s %s worked %d hours, for a total pay of %.2f.\n", $1, $2,$5, total())
}

为了给出准确的答案,我需要做哪些更改?

EN

回答 2

Stack Overflow用户

发布于 2014-09-29 04:35:41

要使其无错误地执行,我必须:

  • 删除if-then-else语句两边的awk {print ...}$5大括号

为了使计算正确,我必须:

  • hours - 40
  • replace 1.5用括号括起来表示为0.5 (或者用hours - 40
  • replace替换为(rate * 40))

结果代码:

代码语言:javascript
复制
function total() {
    hours = $5;
    rate = $4;
    if (hours <= 40) {
        sum = rate * hours;
        return sum;
    }
    else {
        sum = ((hours - 40) * 0.5 * rate) + (rate * hours);
        return sum;
    }
}

{
    printf("%s %s worked %d hours, for a total pay of %.2f.\n", $1, $2, $5, total());
}

输出:

代码语言:javascript
复制
Natlie Attired worked 44 hours, for a total pay of 478.40.
Guy Wyre worked 40 hours, for a total pay of 470.00.
票数 2
EN

Stack Overflow用户

发布于 2014-09-29 07:51:16

代码语言:javascript
复制
$ cat tst.awk
function total(     regHours, otHours, rate, sum){
    rate = $4
    regHours = $5
    if (regHours > 40) {
        otHours = regHours - 40
        regHours = 40
    }
    sum = ((otHours * 1.5) + regHours) * rate
    return sum
}

{
    printf "%s %s worked %d hours, for a total pay of %.2f.\n", $1, $2, $5, total()
}
$
$ awk -f tst.awk file
Natlie Attired worked 44 hours, for a total pay of 478.40.
Guy Wyre worked 40 hours, for a total pay of 470.00.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26089173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档