Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
kurz und knackig:
Kann ich ein LocalDate mit einem Wochentag abgleichen?
Java:
LocalDate date = LocalDate.now();
System.out.println(date);
date = date.plusDays(1);
System.out.println(date);
// If-Abfrage zum Abgleich date mit heutigem Tag
System.out.println("Heute ist Donnerstag!");
}
Code:
if (date.toString().equals(DayOfWeek.THURSDAY)) { //heute ist Donnerstag
}
if (date.getDayOfWeek().equals(DayOfWeek.THURSDAY)) {
}
if (date.getDayOfWeek()==(DayOfWeek.THURSDAY)) {
}
waren so meine Versuche, aber alles nicht zielführend. :/
Oder brauche ich da etwas anderes, wenn ja was? Soweit mir bekannt sollte man seit Java8 doch LocalDate nutzen?!
TIA
Edit: Sorry, Titel konnte ich nicht mehr ändern. Vllt. nicht ganz passend.
public class Main {
public static void main(String[] args) {
java.time.LocalDate date = java.time.LocalDate.now();
date = date.plusDays(1);
if (date.getDayOfWeek().equals(java.time.DayOfWeek.FRIDAY)) {
System.out.println("Morgen ist Freitag");
}
}
}
Bei Enums funktioniert neben dem equals Aufruf auch der Vergleich mit ==.
Es sollte also auch der Vergleich mit == funktionieren:
Java:
public class Main {
public static void main(String[] args) {
java.time.LocalDate date = java.time.LocalDate.now();
date = date.plusDays(1);
if (date.getDayOfWeek() == java.time.DayOfWeek.FRIDAY) {
System.out.println("Morgen ist Freitag");
}
}
}
Wenn die Auszüge 2 und 3 bei Dir (@Wuast) nicht funktionierten, dann zeige doch bitte mehr von dem Code. Die Probleme sollten dann an anderer Stelle zu finden sein.
die Anfrage wurde heute Nacht um 2:50 Uhr gestellt. Da war Mitternacht vorbei und der Wochentag hatte sich geändert. Möglicherweise war das ja das Problem.
Als Ergaenzung und Anmerkung: Das liegt daran dass `Enum`s zwar Objekte und Objektinstanzen sind, aber es garantiert ist dass es nur eine Instanz von diesem Wert gibt (je Klasse/ClassLoader, aber das ist wieder ein anderes Thema) zur Laufzeit. Deswegen kann man == verwenden obwohl es sich um Objekte handelt.
Ah super, mit java.time.... funktioniert es wie gewünscht. @KonradN : Mehr Code gab es da quasi nicht, das war die testweise Methode. Habe eigentlich erst mit Calendar gearbeitet aber das schien mir unverhältnismäßig aufwändig im Vergleich vom LD.
Es geht bei mir sogar, wenn ich java.time nur hier
verwende und nicht bei der Objekterzeugung.
Kann mir noch jmd. kurz erklären, warum ich das java.time brauche?
Danke @Robert Zenz für die Erklärung
und nat. allen für die flotten Rückmeldungen!