WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 28.06.2006, 18:45   #1
Juro
Hero
 
Registriert seit: 24.04.2003
Alter: 53
Beiträge: 823


Standard Java: GregorianCalender

Hi,
Offensichtlich stehe ich wieder einmal auf der Leitung ... dieses Mal mit Hilfe des GregorianCalender.

Ich bastel gerade an einem GUI welches einen Kalender anzeigt (mit diverser anderer Info, die aber jetzt nicht ausschlaggebend ist). Im Endeffekt ist das eine Tabelle mit Tagen (Montag >> Sonntag) als Spalten und Wochen als Zeilen. Da die Spalten gleich bleiben sollen, d.h. die Woche fängt immer mit Montag an, muss ich rausfinden um wieviele Stellen ich den ersten Tag einschieben muss, damit er am richtigen Wochentag steht.

Um Euch nicht zu verwirren werde ich meinen eigenen Code nicht hier reinstellen, irgendwie bin ich da nicht auf einen grünen Zweig gekommen.

Für Eure Hilfe wäre ich Euch dankbar.

lg
juro
____________________________________
Software is like sex, it\'s better when it\'s free!
Juro ist offline   Mit Zitat antworten
Alt 29.06.2006, 08:52   #2
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Ohne es getestet zu haben:

GregorianCalendar cal = new GregorianCalendar();
cal.set( 2006, 0, 1 );
int iDayOfWeek = cal.DAY_OF_WEEK;

in iDayOfWeek sollte nun drinnstehen, der wievielte Tag der Woche der 1.1.2006 ist.
T.dot ist offline   Mit Zitat antworten
Alt 29.06.2006, 12:04   #3
Juro
Hero
 
Registriert seit: 24.04.2003
Alter: 53
Beiträge: 823


Standard

Eben nicht. Soweit war ich auch schon

Der 1. Juni war ein Donnerstag, also der 4. Tag in der Woche.
Wenn ich Deinen Code durchführe bekomme ich für iDayOfWeek 7.
Ich bin mir sicher, daß das Problem mit der Logik des GregorianCalendars zu tun hat, man kann z.B. angebeben, wieviele Tage eine Woche mindestens hat (z.B. 5), dann fällt die kompletten ersten 5 Tage von Juni logikweise noch in den Mai ... oder so ähnlich
____________________________________
Software is like sex, it\'s better when it\'s free!
Juro ist offline   Mit Zitat antworten
Alt 29.06.2006, 12:59   #4
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

So, hab mir das mal ernsthaft angeschaut. Nachdem DAY_OF_WEEK eine Static Variable ist kann das ja mal schon grundsätzlich nicht funktionieren. Diese braucht man aber nur, um auf die get Funktion des Kalenders zuzugreifen, welche dann einen sinnvollen Wert liefert.

GregorianCalendar cal = new GregorianCalendar();
cal.set( 2006, 0, 2 );
int iDayOfWeek = cal.get(Calendar.DAY_OF_WEEK);

zu beachten ist:
- beim set erwartet sich der Kalender 0 als 1. Monat, usw.
- die get Funktion liefert afaik einen Tag mehr als bei uns üblich (Woche beginnt mit Sonntag), dh. bei Donnerstag kommt 5 zurück.

mfg Thomas
T.dot ist offline   Mit Zitat antworten
Alt 29.06.2006, 15:28   #5
Juro
Hero
 
Registriert seit: 24.04.2003
Alter: 53
Beiträge: 823


Standard

Code:
GregorianCalendar cal = new GregorianCalendar();
        cal.set(2006,5,1);
        int iDayOfWeek = cal.get(GregorianCalendar.DAY_OF_WEEK);
        
        System.out.println("Der erste Tag vom Juni war der " + iDayOfWeek + " Tag der Woche");
Ergibt:

Der erste Tag vom Juni war der 1 Tag der Woche


Kann irgendwie auch nicht ganz stimmen, immerhin war das ein Donnerstag. Immerhin war der 1.5. ein Montag ...
____________________________________
Software is like sex, it\'s better when it\'s free!
Juro ist offline   Mit Zitat antworten
Alt 29.06.2006, 15:49   #6
T.dot
Master
 
Registriert seit: 13.08.2003
Beiträge: 624


Standard

Hiho!

Ich habs nochmal getestet, bei mir kommt für Juni (2006,5,1):
Der erste Tag vom Juni war der 5 Tag der Woche

für Juli (2006,6,1):
Der erste Tag vom Juli war der 7 Tag der Woche

Ich verwend hier aber Java 1.4.2, würd mich nicht wundern, wenns im 1.5er anders ist.

mfg Thomas
T.dot ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:36 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag