/*
 * $Id: datetest.java,v 1.2 2004/07/20 08:46:27 jonyp Exp $
 *
 * Copyright (c) Siemens AG 2008 
 *           (c) Universität Paderborn 2008 
 * Licensed under EUPL 1.1. 
 *
 * $Log: datetest.java,v $
 * Revision 1.2  2004/07/20 08:46:27  jonyp
 * added copyright info + cvs log
 *
 *
 */

package vkc.util;

import java.util.Calendar;
import java.util.Date;
import java.text.DateFormat;
import java.util.GregorianCalendar; 

public class datetest {

	public static void main(String[] args) {

		DateFormat df = DateFormat.getInstance();

		Calendar cal = new GregorianCalendar(2004,9,18);  // frag mich nicht, warum der Montag hier um eins zu klein angegeben werden muss ??
		cal.setFirstDayOfWeek(Calendar.MONDAY);

		int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);

		// daysFromMonday hat für einen Montag den Wert 0, für einen Sonntag den Wert 6
		int daysFromMonday = (dayOfWeek + 5) % 7;

		System.out.println("Datum                                   : " + df.format(cal.getTime()));
		System.out.println("Woche des Jahres                        : " + cal.get(Calendar.WEEK_OF_YEAR));
		System.out.println("Wochentag laut GregorianCalendar        : " + dayOfWeek);
		System.out.println("Vergangene Tage seit dem letzten Montag : " + daysFromMonday);

		// Montag der Woche berechnen
		long timeMillis = cal.getTimeInMillis();
		long montagMillis = timeMillis - (daysFromMonday * (60*60*24*1000));
		Date montag = new Date(montagMillis);
		System.out.println("START der Woche (Montag)                : " + df.format(montag));

		// Sonntag der Woche berechnen
		long sonntagMillis = timeMillis - ((daysFromMonday - 6)  * (60*60*24*1000));
		Date sonntag = new Date(sonntagMillis);
		System.out.println("ENDE der Woche (Sonntag)                : " + df.format(sonntag));

	}

}