package oracle.forms.jvr;

import java.util.Calendar;
import java.util.Locale;
import java.util.TimeZone;

import oracle.ewt.lwAWT.LWComponent;

public class TimeZones extends LWComponent
{
  public String zona       = "Europe/Madrid";
  public String paisOrigen = "ES";
  public String h24        = "1";
  
  public TimeZones()
  {
    //Find Times Zones
    //http://www.timezoneconverter.com/cgi-bin/findzone    
  }  
  
  public void setZona (String pValue)
  {
    this.zona = pValue; 
  }

  public String getZona ()
  {
    return this.zona; 
  }
  
  public String getH24 ()
  {
    return this.h24; 
  }  
  
  public void setPaisOrigen (String pValue)
  {
    this.paisOrigen = pValue; 
  }

  public String getPaisOrigen ()
  {
    return this.paisOrigen; 
  }  
  
  public void setH24 (String pValue)
  {
    this.h24 = pValue; 
  }

  public String fechaHora ()
  {
     Locale l = new Locale ("es",getPaisOrigen());
     Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(getZona()),l);      
     
     String vFechaHora = "";
     
     if (getH24().equals("1")) 
        vFechaHora = (dosCaracteres(cal.get(Calendar.DATE)) + "/" + (dosCaracteres(cal.get(Calendar.MONTH)+1)) + "/" + cal.get(Calendar.YEAR)   +  " " + dosCaracteres(cal.get(Calendar.HOUR_OF_DAY)) + ":" + dosCaracteres(cal.get(Calendar.MINUTE)) + ":" + dosCaracteres(cal.get(Calendar.SECOND)));     
     else
        {
           vFechaHora = (dosCaracteres(cal.get(Calendar.DATE)) + "/" + (dosCaracteres(cal.get(Calendar.MONTH)+1)) + "/" + cal.get(Calendar.YEAR)   +  " " + dosCaracteres(cal.get(Calendar.HOUR)) + ":" + dosCaracteres(cal.get(Calendar.MINUTE)) + ":" + dosCaracteres(cal.get(Calendar.SECOND)));     
           if (cal.get(cal.AM_PM) == 1)
              vFechaHora = vFechaHora + " PM";
           else
              vFechaHora = vFechaHora + " AM";
        }   
      
     return vFechaHora;     
  }

  public String fecha ()
  {
     Locale l = new Locale("es",getPaisOrigen());
     Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(getZona()),l);      
    
     String vFecha = (dosCaracteres(cal.get(Calendar.DATE)) + "/" + (dosCaracteres(cal.get(Calendar.MONTH)+1)) + "/" + cal.get(Calendar.YEAR));     
    
     return vFecha;     
  }
  
  public String hora ()
  {
     Locale l = new Locale("es",getPaisOrigen());
     Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(getZona()),l);      
    
     String vHora = "";

     if (getH24().equals("1")) 
        vHora = dosCaracteres(cal.get(Calendar.HOUR_OF_DAY)) + ":" + dosCaracteres(cal.get(Calendar.MINUTE)) + ":" + dosCaracteres(cal.get(Calendar.SECOND));     
     else
        {
           vHora = dosCaracteres(cal.get(Calendar.HOUR)) + ":" + dosCaracteres(cal.get(Calendar.MINUTE)) + ":" + dosCaracteres(cal.get(Calendar.SECOND));     
           if (cal.get(cal.AM_PM) == 1)
              vHora = vHora + " PM";
           else
              vHora = vHora + " AM";
        }  
    
     return vHora;     
  }  
  
  public static String dosCaracteres(int i)
  {
      if (i <10)
         return "0"+i;
      return  ""+i;
  }   
  
}