Anzahl der Tage zwischen zwei Daten ermitteln

  • Antworten:9
  • Bentwortet
Eve W.
  • Forum-Beiträge: 23

08.10.2016, 15:13:36 via Website

Hallo,

wie der Titel schon sagt habe ich zwei Datumsangaben im Format dd.mm.yyyy
Und ich möchte jetzt wissen, wieviel Tage Datum1 vor Datum2 liegt.

int erg = date1.compareTo(date2);

Damit bekomme ich aber nur raus, ob date1 vor oder nach date2 liegt, aber nicht um wieviel Tage.

Geht das überhaupt ? Hab im Netz nichts gefunden...

Danke!
:-)

Gruß,
Eve

Antworten
swa00
  • Forum-Beiträge: 3.704

08.10.2016, 15:30:16 via Website

Hallo Eve,

Es gibt mehrere Wege
Du kannst z.b. die Differenz ermitteln und dann selbst rechnen

long mills = Date1.getTime() - Date2.getTime();
int Hours = millis/(1000 * 60 * 60);
int Mins = millis % (1000*60*60);
float days = (float) ((float)Hours / 24.0F);

lg
Stefan

— geändert am 08.10.2016, 15:32:03

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Eve W.
  • Forum-Beiträge: 23

08.10.2016, 15:32:39 via Website

Hi Stefan,

danke für deine Antwort. Aber leider liegen meine Daten im Format dd.mm.yyyy vor, dh. ich habe keine Zeiten.

VG,
Eve

Antworten
swa00
  • Forum-Beiträge: 3.704

08.10.2016, 15:34:12 via Website

na dann musst du vorher konvertieren

z.B.

SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss aa");
Date Date1 = format.parse("08:00:12 pm");
Date Date2 = format.parse("05:30:12 pm");
long mills = Date1.getTime() - Date2.getTime();

Hier alle Möglichkeiten

https://developer.android.com/reference/java/text/SimpleDateFormat.html

— geändert am 08.10.2016, 15:35:33

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Eve W.
  • Forum-Beiträge: 23

08.10.2016, 15:37:44 via Website

Sorry ich glaub ich steh auf allen Schläuchen.

ich habe schon eine Zeit, aber die ist in beiden Fällen 00:00:00

Ah, kann es sein, dass es dann trotzdem funktioniert? Werde es ausprobieren.

Danke!
:-)

Antworten
swa00
  • Forum-Beiträge: 3.704

08.10.2016, 15:40:02 via Website

Du musst mit SimpleDateFormat("hh:mm:ss aa");
dein Format anpassen und dann mit parse übergeben

lg
Stefan

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
swa00
  • Forum-Beiträge: 3.704

08.10.2016, 15:44:14 via Website

Du kannst aber auch die Calendar funktionen nehmen ..
(Deprecated reasons)

Wie gesagt , es gibt mehrere Möglichkeiten ans Ziel zu gelangen
https://developer.android.com/reference/java/util/Calendar.html

— geändert am 08.10.2016, 15:45:44

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Eve W.
  • Forum-Beiträge: 23

08.10.2016, 15:48:19 via Website

Ja, aber das ist doch in beiden Fällen 00:00:00

und wenn ich dann 00:00:00 - 00:00:00 mache? Das bringt's doch nicht wirklich?

            Date TestDummyDate1;
            Date TestDummyDate2;

    SimpleDateFormat datumsFormat = new SimpleDateFormat("dd.MM.yyyy",Locale.getDefault());
            TestDummyDate1 = datumsFormat.parse("07.10.2016");
            TestDummyDate2 = datumsFormat.parse("08.10.2016");

            int erg = TestDummyDate1 .compareTo(TestDummyDate2 );

?
VG,
Eve

Antworten
Eve W.
  • Forum-Beiträge: 23

08.10.2016, 15:53:43 via Website

ok, ich probiere es jetzt mal mit Day in year. Das müsste ja das sein was ich will.

Danke!
:-)

VG
Eve

Antworten
Eve W.
  • Forum-Beiträge: 23

08.10.2016, 19:04:21 via Website

Also ich habe es jetzt so gemacht, mit dem Code von oben, und es klappt:

SimpleDateFormat patternDiff = new SimpleDateFormat("D");
  String diffstring1 = patternDiff.format(TestDummyDate1);
String diffstring2 = patternDiff.format(TestDummyDate2);

Klappt.
:-)

VG,
Eve

— geändert am 08.10.2016, 19:04:44

Antworten