Hallo,
ich habe eine Klasse "ExtraSalary". Diese ist dazu gedacht um Zuschläge zu berechnen.
Man kennt das klassicherweiße aus "Samstagzuschlag", bspw. 100% auf einen Basispreis.
Ich habe nun eine Klasse:
Nun möchte ich anhand eine Methode prüfen, ob es zu einem Zuschlag kommt.
Hier habe ich dann folgende Methode:
Insbesondere der Zeitraum bereitet mir gerade Schwierigkeiten, mit einem einzelnen Datum wäre es denke ich einfacher.
1. Ich muss natürlich die Liste (List<ExtraSalaryList>) durchgehen
- PUBLIC_HOLIDAY wird anhand der Datenbank geprüft
- CUSTOM_DAY wird einfach auf einen spezielles Datum geprüft
Danke für jede Hilfe
ich habe eine Klasse "ExtraSalary". Diese ist dazu gedacht um Zuschläge zu berechnen.
Man kennt das klassicherweiße aus "Samstagzuschlag", bspw. 100% auf einen Basispreis.
Ich habe nun eine Klasse:
Java:
public class ExtraSalary {
public enum DayType {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY,
PUBLIC_HOLIDAY,
CUSTOM_DAY
}
private String dayType;
// Uhrzeit wann der Zuschlag gilt
private LocalTime startTime = LocalTime.of(8, 00);
private LocalTime endTime = LocalTime.of(17, 00);
// Geldbetrag oder Prozent (Zuschlag kann prozentual stattfinden oder mit einem fixen Betrag)
private String salaryType = DiscountCalculationTypeEnum.PERCENTAGE.toString();
// Prozentwert
private BigDecimal percentageValue;
// Preis
private BigDecimal price;
Nun möchte ich anhand eine Methode prüfen, ob es zu einem Zuschlag kommt.
Hier habe ich dann folgende Methode:
Java:
private BigDecimal calculatePriceForExtraSalary(List<ExtraSalaryList> listExtraSalaryList, BigDecimal baseValue, LocalDateTime startDate,
LocalDateTime endDate)
- List<ExtraSalaryList> listExtraSalaryList => Definiert, wann es zu einem Zuschlag kommt
- baseValue = Ist der Basiswert
- StartDate und EndDate sollte selbsterklärend sein... Die Zeitspanne, die betrachtet werden soll (kann also auch über mehrere Tage sich erstrecken). Demnach kann es bspw. auch sein, dass ein Samstag mehrmals vorkommt. Dies sollte dann natürlich berücksichtigt werden
Insbesondere der Zeitraum bereitet mir gerade Schwierigkeiten, mit einem einzelnen Datum wäre es denke ich einfacher.
1. Ich muss natürlich die Liste (List<ExtraSalaryList>) durchgehen
Java:
for(ExtraSalaryList extraSalaryList : listExtraSalaryList){
// Enthält Zeitspanne einen Montag?
}
- PUBLIC_HOLIDAY wird anhand der Datenbank geprüft
- CUSTOM_DAY wird einfach auf einen spezielles Datum geprüft
Danke für jede Hilfe