Wochentag eines Datums ermitteln

Status
Nicht offen für weitere Antworten.

Gayson

Bekanntes Mitglied
Guten Tag!

Ich habe mal versucht, mich ein bisschen durch JCalender, JGregorianCalender und JDate durchzufummeln, leider jedoch ergebnislos.

Was ich erreichen möchte ist, dass wenn ich einer Methode ein Datum übergebe, dass das Programm mir den deutschen zugehörigen Wochentag ausspuckt.

Könntet ihr mir hierzu einen kleinen Tip geben?

Danke!!
 

P3AC3MAK3R

Top Contributor
Auszug aus dem API:

Code:
// get the supported ids for GMT-08:00 (Pacific Standard Time)
 String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
 // if no ids were returned, something is wrong. get out.
 if (ids.length == 0)
     System.exit(0);

  // begin output
 System.out.println("Current Time");

 // create a Pacific Standard Time time zone
 SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

 // set up rules for daylight savings time
 pdt.setStartRule(Calendar.APRIL, 1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);
 pdt.setEndRule(Calendar.OCTOBER, -1, Calendar.SUNDAY, 2 * 60 * 60 * 1000);

 // create a GregorianCalendar with the Pacific Daylight time zone
 // and the current date and time
 Calendar calendar = new GregorianCalendar(pdt);
 Date trialTime = new Date();
 calendar.setTime(trialTime);

 // print out a bunch of interesting things
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
                    + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000)));
 System.out.println("DST_OFFSET: "
                    + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000)));

 System.out.println("Current Time, with hour reset to 3");
 calendar.clear(Calendar.HOUR_OF_DAY); // so doesn't override
 calendar.set(Calendar.HOUR, 3);
 System.out.println("ERA: " + calendar.get(Calendar.ERA));
 System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
 System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
 System.out.println("WEEK_OF_YEAR: " + calendar.get(Calendar.WEEK_OF_YEAR));
 System.out.println("WEEK_OF_MONTH: " + calendar.get(Calendar.WEEK_OF_MONTH));
 System.out.println("DATE: " + calendar.get(Calendar.DATE));
 System.out.println("DAY_OF_MONTH: " + calendar.get(Calendar.DAY_OF_MONTH));
 System.out.println("DAY_OF_YEAR: " + calendar.get(Calendar.DAY_OF_YEAR));
 System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));
 System.out.println("DAY_OF_WEEK_IN_MONTH: "
                    + calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
 System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
 System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
 System.out.println("HOUR_OF_DAY: " + calendar.get(Calendar.HOUR_OF_DAY));
 System.out.println("MINUTE: " + calendar.get(Calendar.MINUTE));
 System.out.println("SECOND: " + calendar.get(Calendar.SECOND));
 System.out.println("MILLISECOND: " + calendar.get(Calendar.MILLISECOND));
 System.out.println("ZONE_OFFSET: "
        + (calendar.get(Calendar.ZONE_OFFSET)/(60*60*1000))); // in hours
 System.out.println("DST_OFFSET: "
        + (calendar.get(Calendar.DST_OFFSET)/(60*60*1000))); // in hours

Mit

Code:
SimpleTimeZone pdt = new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);
Calendar calendar = new GregorianCalendar(pdt);

erzeugst Du einen Kalender.

Mit

Code:
System.out.println("DAY_OF_WEEK: " + calendar.get(Calendar.DAY_OF_WEEK));

solltest Du das gewünschte Ergebnis erhalten.

[Edit]Die Zeitzone muß dann natürlich noch angepaßt werden.[/Edit]
 

thE_29

Top Contributor
Code:
    SimpleDateFormat formata = new SimpleDateFormat("EEEE, dd.MMMM yyyy"); // EEEE = WOCHENTAG
    formata.setTimeZone(TimeZone.getTimeZone("CET"));
    String strAktDate = formata.format(aktDate);

prob das setzen der TimeZone mal
 

Gayson

Bekanntes Mitglied
Bei Peacemakers Code versteh ich nicht, wo denn da ein spezielles Datum eintragen kann.
Liefert calendar.get(Calendar.DAY_OF_WEEK) nicht den aktuellen Wochentag? Und bei der TimeZone lässt sich doch nur die Zeitverschiebung einstellen, oder? Wie kann ich hiermit den Wochentag eines beliebigen Datums herausfinden.

Und thE_29 Code kapier ich gar nicht, wäre toll, wenn du mir ne kurze Erklärung dafür geben könntest.
 
B

bygones

Gast
Gayson hat gesagt.:
Und thE_29 Code kapier ich gar nicht, wäre toll, wenn du mir ne kurze Erklärung dafür geben könntest.
SimpleDateFormat formatiert dir das Datum so wie du es im Konstruktor angibst (schau dazu in der Api nach)...
danach setzt er die entsprechende Zeitzone und gibt dann das Format für das aktuelle Datum aus..

wahrscheinlich is es so besser:
Code:
System.out.println(formata.format(new Date());
probier das mal aus und schau dir das Ergebnis an :)
 

P3AC3MAK3R

Top Contributor
Gayson hat gesagt.:
Bei Peacemakers Code versteh ich nicht, wo denn da ein spezielles Datum eintragen kann.
Liefert calendar.get(Calendar.DAY_OF_WEEK) nicht den aktuellen Wochentag? Und bei der TimeZone lässt sich doch nur die Zeitverschiebung einstellen, oder? Wie kann ich hiermit den Wochentag eines beliebigen Datums herausfinden.
Ein Datum kannst Du mit der setTime-Methode der Klasse Calendar festlegen. TimeZone ist die Zeitzone, welche noch abgeändert werden muß.
 

Gayson

Bekanntes Mitglied
Code:
SimpleDateFormat formata = new SimpleDateFormat("EEEE, dd.MMMM yyyy"); // EEEE = WOCHENTAG
formata.setTimeZone(TimeZone.getTimeZone("CET"));
System.out.println(formata.format(new Date()));

Dieser Code klappt hervorragend, ich verstehe ihn jetzt sogar ein wenig mehr. Doch wie kann ich ein beliebiges Datum anzeigen lassen?
Muss man wahrscheinlich in der letzten Zeile bei new Date() was ändern, aber ich weiß leider nicht, was. :( :(
 
B

bygones

Gast
was meinst du mit "jedes beliebige Datum" ??
wenn es ums Format geht dann musst du dir einen entsprechenden SimpleFormatter bauen...

oder meinst du dass es immer aktuell ist ?
das macht der Aufruf new Date() automatisch:
Code:
Mon Aug 09 15:28:23 CEST 2004
 

P3AC3MAK3R

Top Contributor
Gayson hat gesagt.:
Code:
SimpleDateFormat formata = new SimpleDateFormat("EEEE, dd.MMMM yyyy"); // EEEE = WOCHENTAG
formata.setTimeZone(TimeZone.getTimeZone("CET"));
System.out.println(formata.format(new Date()));

Dieser Code klappt hervorragend, ich verstehe ihn jetzt sogar ein wenig mehr. Doch wie kann ich ein beliebiges Datum anzeigen lassen?
Muss man wahrscheinlich in der letzten Zeile bei new Date() was ändern, aber ich weiß leider nicht, was. :( :(
In diesem Fall müßtest Du einen anderen Date-Konstruktor verwenden:

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Date.html#constructor_detail
 

Gayson

Bekanntes Mitglied
was meinst du mit "jedes beliebige Datum" ??
Ich möchte erreichen, dass zu einem Datum, welches ich angebe, der dazugehörige Wochentag "ausgespuckt" wird.

In diesem Fall müßtest Du einen anderen Date-Konstruktor verwenden:
Wenn ich es also richtig verstanden habe, müsste
Code:
System.out.println(formata.format(new Date(long milliseconds)));
den Wochentag eines beliebigen Datums ausgeben?

Gibt es dafür auch eine Methode (Datum --> Millisekunden), oder muss man sich dafür ne Formel kreieren (was meiner Meinung nach mit den Schaltjahren ein wenig komplizierter werden dürfte, oder)?
 
B

bygones

Gast
du kannst auch a weng mit dem SImpleDateFormat spielen - da geht es nämlich auch in die andere Richtung:
Code:
public static void main( String[] args ) throws ParseException {
        SimpleDateFormat dayFormat = new SimpleDateFormat( "EEEE" );
        SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
        String date = "22.08.1989";
        System.out.println(date + " was a " + dayFormat.format( format.parse(date) ));
    }
 
B

bygones

Gast
achja - vergess am besten nicht
Code:
format.setLenient(false);
ansonsten parst er
Code:
String date = "35.08.1989";
das datum auch !
 

Gayson

Bekanntes Mitglied
Tut mir leid, ich brauche nocmal kurz eure Hilfe.
Wie kann ich erfragen, ob ein bestimmtes Jahr ein Schaltjahr ist?

Ich brauche so etwas wie:

Code:
if (2004=Schaltjahr)
System.out.println("2004 ist ein Schaltjahr";

Bestimmt ganz simpel, gibt es solch ein boolean vielleicht sogar in Date?
Oder vielleicht eine Methode, mit der man die Tage eines Jahres bestimmen könnte (so kann man ja dann daraus schließen, ob Schaltjahr oder nicht).

Sonst schreib ich ne Formel, ist zwar net schwer, aber ich dachte, es könnte etwas eleganter gehen...
 

Gayson

Bekanntes Mitglied
Habe mich mal danach umgeguckt, wie man einm Schaltjahr berechnet:

Generell ist ein Jahr ein Schaltjahr, wenn es ohne Rest durch vier teilbar ist: So war beispielsweise 1996 ein Schaltjahr und auch 2004 wird eins sein. Eine Ausnahme bilden die vollen Jahrhunderte: Sie sind im allgemeinen keine Schaltjahre - bis auf die vollen Jahrhunderte, die durch 400 ohne Rest teilbar sind. Daher ist beispielsweise das Jahr 2000 ein Schaltjahr.

Und hier die Formel, die ich mir hierzu ausgedacht hab.
Wenn ihr ein Fehler findet, sagt bitte Bescheid!

Code:
		if((chosenYear % 100)!=0 && ((chosenYear % 4)==0)){
			System.out.println(chosenYear + " ist ein Schaltjahr");
		}
		else if ((chosenYear % 400)==0){
			System.out.println(chosenYear + " ist ein Schaltjahr");
		}
		else {
			System.out.println(chosenYear + " ist kein Schaltjahr");
		}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Wochentag eines Datums berechnen Java Basics - Anfänger-Themen 7
J Den Wochentag eines spezifischen Datums ausgeben Java Basics - Anfänger-Themen 2
S beliebiges Datum einlesen, Wochentag eines Datums ermitteln Java Basics - Anfänger-Themen 18
elsaaaaaa Wochentag als String ausgeben mit JDK Klassen Java Basics - Anfänger-Themen 6
M Wochentag ermittel und ggf tage abziehen Java Basics - Anfänger-Themen 4
A Wochentag berechnen Java Basics - Anfänger-Themen 10
L Wochentag berechnen Java Basics - Anfänger-Themen 5
N String kann nicht in Wochentag konvertiert werden Java Basics - Anfänger-Themen 6
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
E Gregorian Calendar übergibt falschen Wochentag Java Basics - Anfänger-Themen 2
N falscher Wochentag GreogrianCalendar Java Basics - Anfänger-Themen 6
M Wochentag Java Basics - Anfänger-Themen 3
L Wochentag Java Basics - Anfänger-Themen 4
E Wochentag String parsen Java Basics - Anfänger-Themen 2
G Wochentag und Jahrtag werden nicht korrekt ermittelt Java Basics - Anfänger-Themen 8
G Gibt es eine möglichkeit den Wochentag herauszufinden? Java Basics - Anfänger-Themen 28
A Wochentag über SimpleDateFormat bringt wirre Ergebnisse Java Basics - Anfänger-Themen 4
P Wochentag von Date Java Basics - Anfänger-Themen 5
G Datum in Wochentag ausgeben Java Basics - Anfänger-Themen 3
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
laxla123 Eigenschaften eines Algorithmus (determiniert vs.. deterministisch) Java Basics - Anfänger-Themen 2
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
J Farbe des Striches eines TitledBorders ändern Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
walid Öffnungszeiten eines Geschäftes Java Basics - Anfänger-Themen 3
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
T Probleme beim Import eines Git-Repos Java Basics - Anfänger-Themen 2
U Eigenschaft eines JTextfiels per ActionListener ändern... Java Basics - Anfänger-Themen 2
B Synchronisation eines kleinen Museums Java Basics - Anfänger-Themen 47
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
Sachinbhatt Was ist die Notwendigkeit eines Sammlungsframeworks in Java? Java Basics - Anfänger-Themen 2
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
B Produkt eines double - streams Java Basics - Anfänger-Themen 3
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Parse-Tree eines statements darstellen Java Basics - Anfänger-Themen 0
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Hinzufügen eines Objektes in ein Objekt-Array Java Basics - Anfänger-Themen 62
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
A Rekursive Implementation eines Codes Java Basics - Anfänger-Themen 4
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
M Wie erreiche ich das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 2
M Wie erreiche ich es das Vorwärtsgehen eines Roboters? Java Basics - Anfänger-Themen 0
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
A Optimierung eines Programms: Mergen der Dateien Java Basics - Anfänger-Themen 23
melisax Alle Möglichkeiten eines Wortes angeben Java Basics - Anfänger-Themen 3
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
C Fehler beim erstellen eines Objektes Java Basics - Anfänger-Themen 3
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
F Initialisieren eines Web-Mp3 Players in Tabs durch "booleans" erst wenn Tab geöffnet wird ...? Java Basics - Anfänger-Themen 1
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
C Überprüfen eines Programms auf Syntaxfehler Java Basics - Anfänger-Themen 3
S Wie kann ich den Bereich eines Integers begrenzen? Java Basics - Anfänger-Themen 2
nonickatall Grundsätzliches Verständnisproblem des Aufbaus eines Programms Java Basics - Anfänger-Themen 19
B Downgrade eines bestehenden Projektes Java Basics - Anfänger-Themen 5
amelie123456 Geschwindigkeit der Methode bewegeDich eines Objekts ändern Java Basics - Anfänger-Themen 2
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Z Rückgabe eines Values in umgekehrte richtung Java Basics - Anfänger-Themen 5
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
M Benutzereingabe eines Codes verbessern Java Basics - Anfänger-Themen 3
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
C Wie kann ich Versionen eines Projektes in Eclipse erstellen? Java Basics - Anfänger-Themen 3
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
A Teilen eines Arrays Java Basics - Anfänger-Themen 5
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
R Löschen und ausgeben eines Teilbaums Java Basics - Anfänger-Themen 3
J Alle Werte eines Strings zusammen addieren Java Basics - Anfänger-Themen 15
M Hilfe bei Strukturierung eines Buchungssystems Java Basics - Anfänger-Themen 3
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
M Rückgabe eines Arrays Java Basics - Anfänger-Themen 10
Z Erste Schritte Indexe innerhalb eines Arrays zusammensählen Java Basics - Anfänger-Themen 14
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
A Freie Stelle eines Arrays Java Basics - Anfänger-Themen 17
C Erstellen eines Widerstandsnetzwerks Java Basics - Anfänger-Themen 10
C Methode Seiten tauschen eines erstellten Rechtecks mit Seite A und B Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben