Joda DateTime: Intervalbestimmung

mschlegel

Erfahrenes Mitglied
Hallo zusammen

Irgendwie stehe ich gerade auf dem Schlauch. Ich möchte folgendes erreichen: das Geburtsdatum von Mitgliedern soll mit dem heutigen Datum abgeglichen werden, und als Ergebnis soll ein int herauskommen der angibt wieviele Tage es noch bis zu dem Geburtstag sind, bzw. wie viele Tage schon vergangen sind (für dieses Jahr).

Ich nutze die Joda DateTime API und habe mittels getDays und getDayOfYear herumexperimentiert wobei ich mit dem zweiten Ansatz fast erfolgreich war, der Code aber nicht wirklich schön ist.

Daher wollte ich fragen ob jemand eine elegantere Lösung für dieses Problem kennt. Die API bietet ja diverse Möglichkeiten, aber so ganz steige ich da noch nicht durch.

Danke
 
Ich kenn ich mit Joda Time auch nicht wirklich aus. Es war aber nicht schwer zu finden was du brauchst... du suchst was mit Tagen, also Days. Die Klasse gibt es sogar... also reingeschaut und auch was gefunden:
Days.daysBetween(new DateTime(...), new DateTime(...))
 
Hallo,

schau mal hier:
Java:
package de.tutorials;

import org.joda.time.DateTime;
import org.joda.time.DateTimeFieldType;
import org.joda.time.Days;

public class JodaTimeDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        DateTime now = new DateTime();
        //DateTime bdate = new DateTime(1983, 8, 29, 0, 0, 0, 0);
        DateTime bdate = new DateTime(1983, 1, 12, 0, 0, 0, 0);

        DateTime bdateThisYear = bdate.property(DateTimeFieldType.year())
                .setCopy(now.getYear());

        
        
        if (bdateThisYear.isAfterNow()) {
            System.out.println(Days.daysBetween(now, bdateThisYear).getDays()
                    + " until bday!");
        } else {
            System.out.println(Days.daysBetween(bdateThisYear, now).getDays()
                    + " since last bday!");
        }

    }

}

Gruß Tom
 
@zeja: die Klasse Days hatte ich auch gefunden, aber dann halt das Problem dass die Tage von heute bis zurück zum Geburtstag ein paar Tausen sind.

@Tom: sieht vielversprechend aus...werds gleich mal ausprobieren. Danke!!

EDIT: passt :)
 
Zuletzt bearbeitet:
Zurück