/*
 * CurrentDateTime.java
 */

package intranet;

import java.util.*;

public class CurrentDateTime
{
   Calendar adelaideCalendar = null;
   Calendar perthCalendar = null;
   Calendar kualaLumpurCalendar = null;
   Calendar sanFranciscoCalendar = null;
   TimeZone adelaideTimeZone = TimeZone.getTimeZone("ACT");
   TimeZone perthTimeZone = TimeZone.getTimeZone("CTT");
   TimeZone kualaLumpurTimeZone = TimeZone.getTimeZone("CTT");
   TimeZone sanFranciscoTimeZone = TimeZone.getTimeZone("PST");


   private static final String[] dayNames
      = { "Sunday", "Monday", "Tuesday", "Wednesday",
          "Thursday", "Friday", "Saturday" };
   private static final String[] monthNames
      = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
          "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };


   public CurrentDateTime()
   {
      adelaideCalendar = Calendar.getInstance(adelaideTimeZone);
      adelaideCalendar.setTime(new Date());
      perthCalendar = Calendar.getInstance(perthTimeZone);
      perthCalendar.setTime(new Date());
      kualaLumpurCalendar = Calendar.getInstance(kualaLumpurTimeZone);
      kualaLumpurCalendar.setTime(new Date());
      sanFranciscoCalendar = Calendar.getInstance(sanFranciscoTimeZone);
      sanFranciscoCalendar.setTime(new Date());
   }


   public String getAdelaideDateTime()
   {
      return getDateTime(adelaideCalendar);
   }


   public String getPerthDateTime()
   {
      return getDateTime(perthCalendar);
   }


   public String getKualaLumpurDateTime()
   {
      return getDateTime(kualaLumpurCalendar);
   }


   public String getSanFranciscoDateTime()
   {
      return getDateTime(sanFranciscoCalendar);
   }


   private String getDateTime(Calendar now)
   {
      int nowDate = now.get(Calendar.DATE);
      int nowDay = now.get(Calendar.DAY_OF_WEEK) - 1;
      int nowMonth = now.get(Calendar.MONTH);
      int nowYear = now.get(Calendar.YEAR);
      int nowHours = now.get(Calendar.HOUR_OF_DAY);
      int nowMinutes = now.get(Calendar.MINUTE);
      String leadingHourDigit = "";
      if (nowHours < 10)
         leadingHourDigit = "0";
      String leadingMinuteDigit = "";
      if (nowMinutes < 10)
         leadingMinuteDigit = "0";
      String dateTimeString = " " + dayNames[nowDay] + ", "
         + nowDate + "-" + monthNames[nowMonth] + "-" + nowYear + "  "
	 + leadingHourDigit + nowHours + ":" + leadingMinuteDigit + nowMinutes;
      return dateTimeString;
   }

}  // CurrentDateTime

