![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Hero
![]() Registriert seit: 24.04.2003
Alter: 53
Beiträge: 823
|
![]() 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! |
![]() |
![]() |
![]() |
#2 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() 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. |
![]() |
![]() |
![]() |
#3 |
Hero
![]() Registriert seit: 24.04.2003
Alter: 53
Beiträge: 823
|
![]() 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! |
![]() |
![]() |
![]() |
#4 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() 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 |
![]() |
![]() |
![]() |
#5 |
Hero
![]() Registriert seit: 24.04.2003
Alter: 53
Beiträge: 823
|
![]() 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"); 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! |
![]() |
![]() |
![]() |
#6 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() 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 |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|