lobos82 Geschrieben 5. Oktober 2006 Geschrieben 5. Oktober 2006 Ist es möglich, dass ich aus einem Datumsfeld vom Typ date mir irgendwie die Kalenderwoche herausholen kann? Sodass ich eine Folge von Datumsanzeigen habe und dazu die dazugehörige Kalenderwoche. Zitieren
Pinhead Geschrieben 5. Oktober 2006 Geschrieben 5. Oktober 2006 Mit der Klasse GregorianCalender ist so etwas möglich. GregorianCalendar gc = new GregorianCalendar(); gc.setTime(new Date()); System.out.println(gc.get(GregorianCalendar.WEEK_OF_YEAR)); Zitieren
Jaraz Geschrieben 5. Oktober 2006 Geschrieben 5. Oktober 2006 Hi, ja es ist möglich. Mit WEEK_OF_YEAR vom Calendar. http://www.galileocomputing.de/openbook/javainsel5/javainsel10_006.htm nach WEEK_OF_YEAR suchen. Gruß Jaraz Zitieren
Toupman Geschrieben 5. Oktober 2006 Geschrieben 5. Oktober 2006 Oder so: public static synchronized Integer getWeekFromDate( Date date ) { if ( date == null ) { return null; } Calendar toolCalendar = Calendar.getInstance(); toolCalendar.clear(); toolCalendar.setTime( date ); int week = toolCalendar.get( Calendar.WEEK_OF_YEAR ); return new Integer( week ); } Zitieren
Terwilliger Geschrieben 5. Oktober 2006 Geschrieben 5. Oktober 2006 Oder so: public static synchronized Integer getWeekFromDate( Date date ) { if ( date == null ) { return null; } Calendar toolCalendar = Calendar.getInstance(); toolCalendar.clear(); toolCalendar.setTime( date ); int week = toolCalendar.get( Calendar.WEEK_OF_YEAR ); return new Integer( week ); } soweit, sogut. Warum nur static synchronized und die Wrapperklasse Integer statt einfach int? Zitieren
Toupman Geschrieben 5. Oktober 2006 Geschrieben 5. Oktober 2006 Integer, weil wir die immer benutzen. int hätte hier wahrscheinlich gereicht. static syncronized, weil ich das bei uns aus ner Toolklasse geliehen habe. Ich wußte einfach das ich sowas schonmal gesehn hab. Die Kurzform: public int getWeekFromDate( Date date ) { if ( date == null ) { return null; } Calendar toolCalendar = Calendar.getInstance(); toolCalendar.clear(); toolCalendar.setTime( date ); return toolCalendar.get( Calendar.WEEK_OF_YEAR ); } Zitieren
Terwilliger Geschrieben 7. Oktober 2006 Geschrieben 7. Oktober 2006 Integer, weil wir die immer benutzen. int hätte hier wahrscheinlich gereicht. Nur interessehalber gefragt, gibt es dafür einen speziellen Grund/Vorteil? Weil Integer ist natürlich langsamer als der Basisdatentyp. Zitieren
zirri Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 Integer, weil wir die immer benutzen. int hätte hier wahrscheinlich gereicht. static syncronized, weil ich das bei uns aus ner Toolklasse geliehen habe. Ich wußte einfach das ich sowas schonmal gesehn hab. ok. static macht sinn. aber synchronized macht a) ueberhaupt keinen Sinn und ist extrem teuer. gruss Zitieren
Toupman Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 synchronized, weil die Methode eine SharedInstance eines Calendar-Objects verwendet. synchronized stellt sicher, dass diese Methoden jeweils nur von einem Thread aufgerufen werden. Dies ist wichtig, da sonst folgende Konstellation auftreten könnte: Thread 1 ruft eine DateTools-Methode auf und initiert Calendar1 Thread 2 ruft eine DateTools-Methode auf und initiert Calendar2 Die Methode von Thread 1 ist fertig und liefert einen falschen Wert, weil sie mit Calendar2 gearbeitet hat. Zitieren
zirri Geschrieben 9. Oktober 2006 Geschrieben 9. Oktober 2006 ok. ich da ich Deine ganze Toolsklasse nicht kenne, dann doch -> hier so richtig. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.