Java 如何计算加班费? < P>问题(如加班费(工作时间超过8小时)是小时费率的一倍半)!p>

Java 如何计算加班费? < P>问题(如加班费(工作时间超过8小时)是小时费率的一倍半)!p>,java,Java,比率是4.5 int hoursWorked; double rateOfPay=4.5; double overtime=0; if (hoursWorked>8) overtime = (hoursWorked-8)*(rateOfPay*1.5); // Calculate OVERTIME HOURS 你的想法是对的,那就是加班费 在你有了这些之后, 我做一些类似的事情 if(hoursWorked <= 8) { totalPay = hours

比率是4.5

int hoursWorked;
double rateOfPay=4.5;
double overtime=0;

if (hoursWorked>8)
      overtime = (hoursWorked-8)*(rateOfPay*1.5); // Calculate OVERTIME HOURS

你的想法是对的,那就是加班费

在你有了这些之后, 我做一些类似的事情

if(hoursWorked <= 8) {
      totalPay = hoursWorked * rateOfPay;
}  else {
       totalPay = (8 * rateOfPay) + ((hoursWorked - 8) * (rateOfPay*1.5);
}

首先计算出一些“有效工作时间”,或者类似的,用加班时间乘以增加的工资乘数——这很好

double overtime = 0;
if (hours > 8)
    overtime = (hours - 8) * 1.5;

totalPay = (overtime == 0? hours * rate : (overtime + 8) * rate);
加班时,这将增加8小时的正常工资!=0到加班时间

如果加班时间等于0,则计算正常时间(由于小时数小于8,因此等于(小时数*费率))

否则,您的“工作时间”为8+(比8小时多1.5*小时),括号中的术语在此处标记为“加班”

另一种方法是继续你对加班的定义,并考虑@CommitteedRoider提出的模型,即

totalPay = overtime + (rate * std::min(8, hours));
在这种情况下,如果你工作9小时,你的工作时间不会少于8小时。

int hoursweed=80;
 int hoursWorked = 80;
 int overTimeHours = 5;
 double rateOfPay = 18.0;
 double overTime = rateOfPay * 1.5;

 // will print rateOfPay multiplied by 1.5
 System.out.println(overTime);

 if( hoursWorked <= 80);
    System.out.println(hoursWorked * rateOfPay);
 if(hoursWorked + overTimeHours > 80);
 //Multiplies hoursWorked by rateofPay = 1440.00 - then adds overTimeHours multiplied by overTime to total pay. 
    System.out.println(hoursWorked * rateOfPay + (overTimeHours * overTime));
int超时小时数=5; 双倍支付率=18.0; 双倍加班费=付款费率*1.5; //将打印付款率乘以1.5 系统输出打印LN(加班); 如果(工作时间为80小时); //将工作小时数乘以工资率=1440.00-然后将加班时间乘以加班时间加总工资。 系统输出打印项次(工作小时数*支付费率+(超时小时数*加班));
你能试着澄清一下这个问题吗?你在计算什么?在正常工资下,你需要工作多少小时才能获得与给定加班时间相同的工资?@chrisb2244我想计算工作日和周末的工资。周末双倍价格(价格*2)。如果有人周末加班,我会计算加班加工资。但我不知道怎么计算。这不是编程问题,这是基础数学。另外,你已经回答了你的问题。如果时钟上的时间超过8小时,则速率为4.5*1.5。您的代码中已经计算了加班时间。我有一种奇怪的感觉,我在看作业的示例代码。不客气!!!你能把这个标记为被接受的答案吗?这是错误的,对吗?如果你工作12小时,你将以1.5*的费率获得(12-8)小时的加班费,以正常费率获得+(12%9=3)小时的加班费,或者在你想要8小时正常+6小时额外=14小时的情况下获得9小时的总工资。如果你工作20个小时,甚至都不要开始……克里斯b我知道我能解决这个问题。我把一点间隔开了问题不在于9而在于8——你使用的算法是错误的。如果这个人加班的话,你会计算出比工作时间少的时间。我知道。给我10分钟。请解释一下为什么你认为这个解决方案解决了问题。在阅读代码之前,解释您的答案将有助于更好地理解它
 int hoursWorked = 80;
 int overTimeHours = 5;
 double rateOfPay = 18.0;
 double overTime = rateOfPay * 1.5;

 // will print rateOfPay multiplied by 1.5
 System.out.println(overTime);

 if( hoursWorked <= 80);
    System.out.println(hoursWorked * rateOfPay);
 if(hoursWorked + overTimeHours > 80);
 //Multiplies hoursWorked by rateofPay = 1440.00 - then adds overTimeHours multiplied by overTime to total pay. 
    System.out.println(hoursWorked * rateOfPay + (overTimeHours * overTime));