/*
 * [InaugurationDefault.java]
 *
 * Summary: countdown to next US Presidential inauguration.
 *
 * Copyright: (c) 2000-2017 Roedy Green, Canadian Mind Products, http://mindprod.com
 *
 * Licence: This software may be copied and used freely for any purpose but military.
 *          http://mindprod.com/contact/nonmil.html
 *
 * Requires: JDK 1.8+
 *
 * Created with: JetBrains IntelliJ IDEA IDE http://www.jetbrains.com/idea/
 *
 * Version History:
 *  1.2 2006-03-05 reformat with IntelliJ, add Javadoc.
 *  1.3 2009-01-20 change to Obama
 */
package com.mindprod.inauguration;

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

import static java.lang.System.*;

/**
 * countdown to next US Presidential inauguration.
 * <p/>
 * Demonstrates use of default date format for locale.
 *
 * @author Roedy Green, Canadian Mind Products
 * @version 1.3 2009-01-20 change to Obama
 * @since 2000
 */
public final class InaugurationDefault
    {
    /**
     * locale specific: e.g. Jan 20, 2005
     */
    private static final DateFormat DF = DateFormat.getDateInstance();

    /**
     * Main method.
     *
     * @param args not used
     */
    public static void main( String[] args )
        {
        // inauguration day is Thursday 2009-01-20 noon Eastern Standard
        // Time. Same code automatically adjusts for DST in the summer.
        final int inaugYear = 2017;
        TimeZone est = TimeZone.getTimeZone( "America/New_York" );
        GregorianCalendar inauguration = new GregorianCalendar( est );
        inauguration.set( inaugYear, Calendar.JANUARY, 20, 12, 0, 0 );
        // set TimeZone, not needed if the client's default TZ will do.
        DF.setTimeZone( est );
        // or
        DF.setCalendar( inauguration );
        // set timestamp
        String dateString = DF.format( inauguration.getTime() /* Date object */ );
        out.println( dateString );
        }
    }