Datum aus Kalenderwoche

Dapor2000

Grünschnabel
Hallo,

ich habe in der Suche vergeblich versucht einen Ansatz zu finden, wie man in der Lage ist aus der Kalenderwoche die einzelnen Daten für Montag bis Sonntag herauszubekommen.

also zu wissen das zum Beispiel die 18 kw vom 1.mai bis zum 7 mai geht ohne das ich das alles per hand reincoden muss...ist mir bei 365 Tagen zu mühselig...

Danke schon mal für die Hilfe im vorraus
 
Hallo Dapor,

Lösungsansatz:
hierfür brauchst du lediglich die Klasse GregorianCalendar. Die Vorgehensweise ist dann wie folgt. Setze das gewünschte Jahr, die gewünschte Woche und den Tag, hier Montag. Dann einfach mit einer der vielen Gettermöglichkeiten das Datum holen, beispielsweise mit getTime().


Vg Erdal
 
Zuletzt bearbeitet:
Hallo!

Schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

/**
 * @author Tom
 * 
 */
public class CalendarWeekExample {

	/**
	 * @param args
	 */
	public static void main(final String[] args) {
		final CalendarWeek calendarWeek = new CalendarWeek(37,Locale.GERMANY);
		System.out.println(calendarWeek.getStart());
		System.out.println(calendarWeek.getEnd());
	}

	static class CalendarWeek {
		int weekOfYear;

		Date start;

		Date end;

		public CalendarWeek(final int weekOfYear,final Locale locale) {
			this.weekOfYear = weekOfYear;

			final GregorianCalendar calendar = new GregorianCalendar(locale);
			final int CURRENT_YEAR = calendar.get(Calendar.YEAR);
			calendar.clear();
			calendar.set(Calendar.YEAR,CURRENT_YEAR);
			calendar.set(Calendar.WEEK_OF_YEAR, this.weekOfYear);
			
			this.start = calendar.getTime();
			calendar.add(Calendar.DAY_OF_MONTH, 6);
			this.end = calendar.getTime();
		}

		public Date getEnd() {
			return end;
		}

		public Date getStart() {
			return start;
		}

		public int getWeekOfYear() {
			return weekOfYear;
		}
	}
}

Gruss Tom
 
Hallo Dapor,

hier noch mein Beispiel, das ich schon fertig geschrieben hatte. Ist im Prinzip das gleiche wie bei Toms Beispiel. Zusätzlich sind noch Beispiele zur Verwendung der Klasse SimpleDateFormat vorhanden. Tom war diesmal a bissel schneller beim Tippen :) .

Java:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class DateExample {

	public static void main(String[] args) {
		SimpleDateFormat monthName = new SimpleDateFormat("MMMM");
		SimpleDateFormat dayofWeekName = new SimpleDateFormat("E");
		SimpleDateFormat customTime = new SimpleDateFormat("E, d. MMM yyyy");

		Calendar cal = new GregorianCalendar();

		cal.set(Calendar.YEAR, 2006);
		cal.set(Calendar.WEEK_OF_YEAR, 18);
		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

		System.out.println(cal.getTime());
		System.out.println(cal.get(Calendar.YEAR));
		System.out.println(cal.get(Calendar.MONTH));
		System.out.println(cal.get(Calendar.DAY_OF_MONTH));

		System.out.println(dayofWeekName.format(cal.getTime()));
		System.out.println(monthName.format(cal.getTime()));
		System.out.println(customTime.format(cal.getTime()));

		cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);

		System.out.println();
		System.out.println(cal.getTime());
		System.out.println(cal.get(Calendar.YEAR));
		System.out.println(cal.get(Calendar.MONTH));
		System.out.println(cal.get(Calendar.DAY_OF_MONTH));

		System.out.println(dayofWeekName.format(cal.getTime()));
		System.out.println(monthName.format(cal.getTime()));
		System.out.println(customTime.format(cal.getTime()));
	}
}


Vg Erdal
 
Zurück