[Joda Time] Nächsten Samstag finden

Status
Nicht offen für weitere Antworten.

Tobias

Top Contributor
Hi,

ich befasse mich gerade erstmals mit Joda Time und finde es bisher sehr angenehm zu benutzen. Jetzt habe ich folgendes kleine Problem: Wie finde ich einen bestimmten Wochentag (etwa den nächsten Samstag) heraus? Meine Methode soll eine DateTime-Instanz liefern, die den vom Aufrufzeitpunkt aus gesehen nächsten Samstag (z.B. um 0.00 Uhr) bezeichnet. Wie mache ich sowas?
 

ARadauer

Top Contributor
ich kenn joda time nicht aber mit Calendar sollte das auch kein problem sein

Code:
 Calendar cal = new GregorianCalendar();
    while(cal.get(Calendar.DAY_OF_WEEK)!=Calendar.SATURDAY){
       cal.add(Calendar.DAY_OF_MONTH, 1 );
    }
    System.out.println("Der nächste Samstag ist der: "+cal.getTime());
 

setsuna9

Mitglied
Eine Möglichkeit mit JodaTime wäre:
Code:
public static DateTime getNextSaturday(DateTime dt){
    while (dt.getDayOfWeek() != DateTimeConstants.SATURDAY){
        dt = dt.plusDays(1);
    }
    return dt;
}
 

Saxony

Top Contributor
Hiho,

geht auch ohne Schleife:

Code:
cal.add(Calendar.DAY_OF_MONTH, Calendar.SATURDAY - cal.get(Calendar.DAY_OF_WEEK));

bye Saxony
 
S

SlaterB

Gast
@Saxony:
gemeiner Vorschlag, versuche das so lieber nicht mit Montag:
Code:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DAY_OF_MONTH, Calendar.MONDAY - cal.get(Calendar.DAY_OF_WEEK));
        System.out.println(cal.getTime());
    }
}
Ausgabe:
Mon Feb 16 13:46:43 CET 2009
;)
 

Saxony

Top Contributor
Yup,

alle Tage < Saturday sollten noch +7 spendiert bekommen, da aber nach Sa. gefragt war, passt es, da es die höchste Wertigkeit hat.

bye Saxony
 
S

SlaterB

Gast
ohne allzusehr nerven zu wollen:
bei Freitag = 6 und aktuellen Wochentag = 5 kommt es zufälligerweise in meinem Beispiel auch hin,
wie willst du da + 7 rechen? vielleicht +7 und dann % 7,
dann hätten wir es für alle Fälle zusammen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben