import java.util.*;

public class jcalendar {
	public static void main(String argv[]) {
		// get the supported ids for GMT-8 (Pacific Standard Time)
		String[] ids = TimeZone.getAvailableIDs(-8 * 60 * 60 * 1000);
		if (ids.length == 0)
			System.exit(0);

		// create a Pacific Standard Time time zone
		SimpleTimeZone pdt = 
			new SimpleTimeZone(-8 * 60 * 60 * 1000, ids[0]);

		// set up rules for daylight savings time
		pdt.setStartRule(Calendar.MARCH, 8, Calendar.SUNDAY,
				2 * 60 * 60 * 1000);
		pdt.setEndRule(Calendar.NOVEMBER, 1, Calendar.SUNDAY,
				2 * 60 * 60 * 1000);

		// create a GregorianCalendar 
		Calendar calendar = new GregorianCalendar(pdt);

		System.out.println("Getting information about Jan 26, 2010");
		calendar.set(2010, 0, 26);

		System.out.println("ERA: " + calendar.get(Calendar.ERA));
		System.out.println("YEAR: " + calendar.get(Calendar.YEAR));
		System.out.println("MONTH: " + calendar.get(Calendar.MONTH));
		System.out.println("WEEK_OF_YEAR: "
				+ calendar.get(Calendar.WEEK_OF_YEAR));
		System.out.println("WEEK_OF_MONTH: "
				+ calendar.get(Calendar.WEEK_OF_MONTH));
		System.out.println("DATE: " + calendar.get(Calendar.DATE));
		System.out.println("DAY_OF_MONTH: "
				+ calendar.get(Calendar.DAY_OF_MONTH));
		System.out.println("DAY_OF_YEAR: " 
				+ calendar.get(Calendar.DAY_OF_YEAR));
		System.out.println("DAY_OF_WEEK: " 
				+ calendar.get(Calendar.DAY_OF_WEEK));
		System.out.println("DAY_OF_WEEK_IN_MONTH: "
				+ calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
		System.out.println("AM_PM: " + calendar.get(Calendar.AM_PM));
		System.out.println("HOUR: " + calendar.get(Calendar.HOUR));
		System.out.println("HOUR_OF_DAY: " 
				+ calendar.get(Calendar.HOUR_OF_DAY));
		System.out.println("MINUTE: " + 
				calendar.get(Calendar.MINUTE));
		System.out.println("SECOND: " + 
				calendar.get(Calendar.SECOND));
		System.out.println("MILLISECOND: " 
				+ calendar.get(Calendar.MILLISECOND));
		System.out.println("ZONE_OFFSET: "
				+ (calendar.get(Calendar.ZONE_OFFSET) / 
						(60 * 60 * 1000)));
		System.out.println("DST_OFFSET: "
				+ (calendar.get(Calendar.DST_OFFSET) / 
						(60 * 60 * 1000)));
	}
}
