B
BestGoalkeeper
Gast
Jährlich:
Vertragsbeginn: 15.06.20 00:00
Gebührenintervall: jährlich
Gebühr: 275 Euro
Setup Gebühr: 50 Euro
1)
Endet am: 02.11.2020 um 07:10
Abgerechnet bis 15.06.21 00:00
Gutschrift: 202,07 EUR
2)
Endet am: 02.11.2020 um 00:00
Abgerechnet bis: 15.06.21 00:00
Gutschrift: 202,34 EUR
-> Gutschrift wurde mit Faktor 0,61828 berechnet
3)
Vertragsstart:
Endet am: 15.06.2020 um 00:00
Abgerechnet bis: 15.06.21 00:00
Gutschrift: 386,75 EUR
4)
Endet am: 16.06.2020
Abgerechnet bis: 15.06.21 00:00
Gutschrift: 326,35 EUR
-> Gutschrift wurde mit Faktor 0,997222 berechnet
Java:
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.YearMonth;
public class Jahr {
public static float costs(LocalDateTime start, LocalDateTime mid, LocalDateTime end, float amount1, float amount2) {
if (start.isEqual(mid)) {
return Math.round((amount1 + amount2) * 1.19f * 100.0f) / 100.0f;
}
LocalDateTime t = start;
int m = 0;
while (t.isBefore(mid)) {
t = t.plusMonths(1);
m++;
}
t = t.minusMonths(1);
m--;
float d = Duration.between(t, mid).toMinutes() / (60.0f * 24.0f);
float f1 = amount2 * 1.19f / 12.0f;
float f2 = d / (float) YearMonth.of(t.getYear(), t.getMonthValue()).lengthOfMonth() * f1;
return (float) Math.ceil((f1 * 12.0f - (f1 * m + f2)) * 100.0f) / 100.0f;
}
public static void main(String[] args) {
System.out.println(costs(LocalDateTime.of(2020, 6, 15, 0, 0), LocalDateTime.of(2020, 11, 2, 7, 10), LocalDateTime.of(2021, 6, 15, 0, 0), 50.0f, 275.0f));
System.out.println(costs(LocalDateTime.of(2020, 6, 15, 0, 0), LocalDateTime.of(2020, 11, 2, 0, 0), LocalDateTime.of(2021, 6, 15, 0, 0), 50.0f, 275.0f));
System.out.println(costs(LocalDateTime.of(2020, 6, 15, 0, 0), LocalDateTime.of(2020, 6, 15, 0, 0), LocalDateTime.of(2021, 6, 15, 0, 0), 50.0f, 275.0f));
System.out.println(costs(LocalDateTime.of(2020, 6, 15, 0, 0), LocalDateTime.of(2020, 6, 16, 0, 0), LocalDateTime.of(2021, 6, 15, 0, 0), 50.0f, 275.0f));
}
}