1

これをどのように変更して、従業員に 40 時間以上働いた時間に対して 1/2 を支払うようにするかについて、私は行き詰っています。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")

ありがとうございました。

4

2 に答える 2

1

0.5 * Rate40 時間を超えて働いた時間の賃金を既存の計算に追加するだけです。

If Hrs > 40 Then
    Gros += Math.Round( (Hrs-40) * Rate * 0.5 )
End If
于 2012-09-11T21:16:10.590 に答える
1

ビジュアルベーシックプログラムでコンパイルできるように回答を具体的に書く方法はわかりませんが、アルゴリズムの回答を提供できます

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)
于 2012-09-11T21:17:06.010 に答える