Skip to content

Commit

Permalink
added solution of task
Browse files Browse the repository at this point in the history
  • Loading branch information
apanyutin committed May 16, 2024
1 parent efce797 commit b6e2bf7
Showing 1 changed file with 38 additions and 1 deletion.
39 changes: 38 additions & 1 deletion src/main/java/core/basesyntax/SalaryInfo.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,44 @@
package core.basesyntax;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class SalaryInfo {
private static final int DATE_POSITION_IN_DATA_STRING = 0;
private static final int NAME_POSITION_IN_DATA_STRING = 1;
private static final int HOURS_POSITION_IN_DATA_STRING = 2;
private static final int INCOME_PER_HOUR_POSITION_IN_DATA_STRING = 3;
private final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy");

public String getSalaryInfo(String[] names, String[] data, String dateFrom, String dateTo) {
return null;
StringBuilder sb = new StringBuilder();
sb.append("Report for period ").append(dateFrom).append(" - ").append(dateTo);

for (int j = 0; j < names.length; j++) {
int salaryAmount = 0;

for (int i = 0; i < data.length; i++) {
String[] dataString = data[i].split(" ");
LocalDate date = LocalDate.parse(dataString[DATE_POSITION_IN_DATA_STRING],
dateFormatter);

if (isDateBetweenDates(date, dateFrom, dateTo)
&& names[j].equals(dataString[NAME_POSITION_IN_DATA_STRING])) {

salaryAmount += Integer.parseInt(dataString[HOURS_POSITION_IN_DATA_STRING])
* Integer.parseInt(dataString[INCOME_PER_HOUR_POSITION_IN_DATA_STRING]);
}
}
sb.append(System.lineSeparator())
.append(names[j])
.append(" - ")
.append(salaryAmount);
}
return sb.toString();
}

private boolean isDateBetweenDates(LocalDate date, String dateFrom, String dateTo) {
return date.isAfter(LocalDate.parse(dateFrom, dateFormatter).minusDays(1))
&& date.isBefore(LocalDate.parse(dateTo, dateFormatter).plusDays(1));
}
}

0 comments on commit b6e2bf7

Please sign in to comment.