par
Saian » 06 oct. 2022, 15:12
Salut, un code d'exemple pour voir la logique. A adapter à ton code.
class ProjectManager {
public $seniority = 0;// ancienneté : 0 année
public $salary = 1500;// salaire : 1500€ la première année
public $salaryIncreaseRate = 5 / 100;// pourcentage d'augmentation : 5%
public $salaryIncreasePeriod = 2;// période d'augmentation : tous les 2 ans
}
$projectManager = new ProjectManager();
/* salaire de chaque année pendant 10 ans */
for ($year = 1; $year <= 10; $year++) {
//++$projectManager->seniority;// augmentation en année 2, 4, 6, etc
if (
0 !== $projectManager->seniority
&& 0 === ($projectManager->seniority % $projectManager->salaryIncreasePeriod)
) {
$projectManager->salary += round(
$projectManager->salary * $projectManager->salaryIncreaseRate,
2,
PHP_ROUND_HALF_UP
);
}
echo "- Année $year : Salaire = {$projectManager->salary}€<br/>\n";
++$projectManager->seniority;// augmentation en année 3, 5, 7, etc
}
PS : l'emplacement du ++$projectManager->seniority; en début ou fin du for change la manière dont l'ancienneté est prise en compte. La deuxième option me semble plus logique en vue de l'énoncé. Ce n'est que la troisième année que le salarié a 2 ans d'ancienneté et c'est donc la troisième année qu'il obtient sa première augmentation et ainsi de suite.
Salut, un code d'exemple pour voir la logique. A adapter à ton code.
[php]class ProjectManager {
public $seniority = 0;// ancienneté : 0 année
public $salary = 1500;// salaire : 1500€ la première année
public $salaryIncreaseRate = 5 / 100;// pourcentage d'augmentation : 5%
public $salaryIncreasePeriod = 2;// période d'augmentation : tous les 2 ans
}
$projectManager = new ProjectManager();
/* salaire de chaque année pendant 10 ans */
for ($year = 1; $year <= 10; $year++) {
//++$projectManager->seniority;// augmentation en année 2, 4, 6, etc
if (
0 !== $projectManager->seniority
&& 0 === ($projectManager->seniority % $projectManager->salaryIncreasePeriod)
) {
$projectManager->salary += round(
$projectManager->salary * $projectManager->salaryIncreaseRate,
2,
PHP_ROUND_HALF_UP
);
}
echo "- Année $year : Salaire = {$projectManager->salary}€<br/>\n";
++$projectManager->seniority;// augmentation en année 3, 5, 7, etc
}[/php]
PS : l'emplacement du ++$projectManager->seniority; en début ou fin du for change la manière dont l'ancienneté est prise en compte. La deuxième option me semble plus logique en vue de l'énoncé. Ce n'est que la troisième année que le salarié a 2 ans d'ancienneté et c'est donc la troisième année qu'il obtient sa première augmentation et ainsi de suite.