Veröffentlicht 5. Oktober 200618 j 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.
5. Oktober 200618 j 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));
5. Oktober 200618 j 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
5. Oktober 200618 j 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 ); }
5. Oktober 200618 j 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?
5. Oktober 200618 j 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 ); }
7. Oktober 200618 j 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.
9. Oktober 200618 j 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
9. Oktober 200618 j 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.
9. Oktober 200618 j ok. ich da ich Deine ganze Toolsklasse nicht kenne, dann doch -> hier so richtig.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.