# Datums-Differenzen mit LocalDate (Java 8) - Seltsame Differenzwerte



## Afewerki (4. Okt 2014)

Hallo,

ich komme mit der Differenzbildung zwischen zwei Daten nicht klar. Ich möchte aus einem Zeitraum (date1 - date2) die tatsächlichen Arbeitstage ermitteln.


```
import java.time.*;
public class DateDif {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2014, Month.OCTOBER, 1);
        LocalDate date2 = LocalDate.of(2014, Month.DECEMBER, 21);
        Period diffDays = Period.between(date1, date2);
        int days = diffDays.getDays();
        long ergebnis = days/7;
        int ergebnis2 = (int) (days - ergebnis*2);
        System.out.println("Zeitdifferenz in Tage: " + days);
        System.out.println("Anzahl der Wochen: " + ergebnis);
        System.out.println("Anzahl der Arbeitstage :" + ergebnis2);
    }
}
```
Der Programmcode liefert folgende Ausgabe:


> Zeitdifferenz in Tage: 20
> Anzahl der Wochen: 2
> Anzahl der Arbeitstage :16


Hier müssten aber 81 Tage, 11 Wochen und 59 Arbeitstage herauskommen.
Ich verstehe nicht, warum hier andere Werte herauskommen.

Vielen Dank für die Unterstützung

Afewerki


----------



## JavaMeister (4. Okt 2014)

Naja, ist ein wenig verwirrent. Aber GetDays()  gibt die Anzahl der Rest-Tage zurück. Also getMonth() würde hier vermutlich auch noch 2 zurückgeben.

Period and Duration (The Java™ Tutorials > Date Time > Standard Calendar)

Verwende also:


```
long p2 = ChronoUnit.DAYS.between(today, nextBDay);
```


----------



## Afewerki (4. Okt 2014)

Vielen Dank, 
der Link hat weitergeholfen!


----------

