Zum Inhalt springen

Kalenderwoche aus dem Datum?


Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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

Geschrieben

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

}

Geschrieben
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?

Geschrieben

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

}

Geschrieben
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.

Geschrieben
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

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...