VB.net - 时间一半

时间:2012-09-11 21:12:43

标签: vb.net

我一直坚持如何修改这个,以便它支付员工的时间和工作时间超过40的工作时间的一半。我理解这将是一个if声明,但我不确定我将如何去关于它具体。

示例:如果用户输入35.5小时和9.56作为费率,则净额为237.56美元。

输入:工作小时数和工资率。

产出:不同的税收和净工资。

这是我到目前为止所做的:

    Const FWT_ As Decimal = 0.2
    Const FICA_ As Decimal = 0.08
    Const STAT As Decimal = 0.02

    Dim Hrs As Decimal
    Dim Rate As Decimal
    Dim Gros As Decimal
    Dim FWT As Decimal
    Dim Fi As Decimal
    Dim stat As Decimal
    Dim NetPay As Decimal


    Decimal.TryParse(txtHours.Text, Hrs)
    Decimal.TryParse(txtRate.Text, Rate)


    Gros = Math.Round(Hrs * Rate, 2)
    FWT = Math.Round(Gros * FWT_, 2)
    Fi = Math.Round(Gros * FICA_, 2)
    stat = Math.Round(Gros * STAT, 2)
    NetPay = Gros - FWT - Fi - stat

    lblGr.Text = Gros.ToString("N2")
    lblF.Text = Fi.ToString("N2")
    lblF.Text = Fi.ToString("N2")
    lblSt.Text = stat.ToString("N2")
    lblN.Text = NetPay.ToString("C2")

谢谢。

2 个答案:

答案 0 :(得分:1)

您只需将超过40小时的0.5 * Rate工资添加到现有计算中即可:

If Hrs > 40 Then
    Gros += Math.Round( (Hrs-40) * Rate * 0.5 )
End If

答案 1 :(得分:1)

我不知道具体如何编写答案,以便它将在您的Visual Basic程序中编译,但我可以给您算法答案

if(hours > 40)
    payment = 40 * rate + ((hours-40)) * (rate*1.5);
else
    payment = hours * rate;

如果VB支持三元运算符

payment = hours > 40 ? (40 * rate + ((hours-40)) * (rate*1.5)) : (hours * rate);

如果我被赋予此代码来编辑我要尝试的第一件事:

Gros = Math.Round(Hrs * Rate, 2)

Gros = Math.Round(hours > 40 ? (40 * rate + ((hours-40)) * (rate*1.5)) : (hours * rate), 2)