Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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.

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));

danke

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 );

}

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?

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 );

}

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.

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

B) ist extrem teuer.

gruss

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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.