package cyrille.date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
/**
* @author <a href="mailto:cleclerc@pobox.com">Cyrille Le Clerc</a>
*/
public class TestDate {
public static void main(String[] args) {
try {
TestDate test = new TestDate();
// test.testsWeeks();
test.testWeeksSymphonie();
} catch (Throwable t) {
t.printStackTrace();
}
}
public void testsWeeks() {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_WEEK, 3);
System.out.println("date = " + cal.getTime());
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("first day of week " + cal.getTime());
DateFormat dfYYYYMMDD = new SimpleDateFormat("yyyyMMdd");
System.out.println(dfYYYYMMDD.format(cal.getTime()));
}
public void testCalendarMaximums() throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
Calendar calendar = Calendar.getInstance();
// System.out.println("least max weeks " +
// calendar.getLeastMaximum(Calendar.WEEK_OF_YEAR) + " - greatest
// maximum " + calendar.getGreatestM(Calendar.WEEK_OF_YEAR));
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
for (int i = 1995; i < 2010; i++) {
calendar.set(Calendar.YEAR, i);
System.out.println("Date '" + format.format(calendar.getTime()) + "' max number of days in this February month\t'"
+ calendar.getActualMaximum(Calendar.DAY_OF_MONTH) + "' \t- max weeks in year '"
+ calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) + "'");
}
}
public void testEndOfWeek() {
Calendar calendarEndingDate = Calendar.getInstance(new Locale("FR"));
calendarEndingDate.setFirstDayOfWeek(Calendar.MONDAY);
Date endingDate = new GregorianCalendar(2002, 2, 30).getTime();
calendarEndingDate.setTime(endingDate);
// calendarEndingDate.add(Calendar.WEEK_OF_YEAR, 1);
// calendarEndingDate.add(Calendar.DAY_OF_YEAR, -1);
calendarEndingDate.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println("Last day for " + df.format(endingDate) + ", " + df.format(calendarEndingDate.getTime()));
}
public void testWeeksSymphonie() {
int fromYear = 2003;
int fromWeek = 23;
int toYear = 2003;
int toWeek = 25;
DateFormat format = new SimpleDateFormat("E dd/MM/yyyy (ww)");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, fromYear);
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(Calendar.WEEK_OF_YEAR, fromWeek);
System.out.println("calendar before set Monday " + format.format(calendar.getTime()));
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("calendar after set Monday " + format.format(calendar.getTime()));
Calendar calDayMax = Calendar.getInstance();
calDayMax.set(Calendar.YEAR, toYear);
calDayMax.setFirstDayOfWeek(Calendar.MONDAY);
calDayMax.set(Calendar.WEEK_OF_YEAR, toWeek);
calDayMax.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
Date dayMax = calDayMax.getTime();
System.out.println("dat Max : " + format.format(dayMax));
}
}