/* 
* Copyright 2016 Agencia Estatal de Administración Tibutaria
*
* Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto
* sean aprobadas por la Comisión Europea– versiones
* posteriores de la EUPL (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en:
*  
* https://joinup.ec.europa.eu/software/page/eupl
*  
* Salvo cuando lo exija la legislación aplicable o se acuerde
* por escrito, el programa distribuido con arreglo a la
* Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
* DE NINGÚN TIPO, ni expresasni implícitas.
*
* Véase la Licencia en el idioma concreto que rige los permisos y 
* limitaciones que establece la Licencia.
*/ 


package servidor.utiles;

import java.util.*;

public class TimeSpanMilisec
{
   private long miliSegundos;
   
   public TimeSpanMilisec(Date inicio, Date Final)
   {
      miliSegundos = (Final.getTime() - inicio.getTime());
   }
   public TimeSpanMilisec(long miliSegundos)
   {
      this.miliSegundos = miliSegundos;
   }
   
   @Override
   public String toString()
   {
      long horas = miliSegundos / 3600000l;
      long resto = miliSegundos % 3600000l;
      long minutos = resto / 60000l;
      resto = resto % 60000l;
      long segundos = resto / 1000l;
      long miliSecs = resto % 1000l; 
      java.text.NumberFormat nf = java.text.NumberFormat.getInstance();
      nf.setMinimumIntegerDigits(2);
      StringBuilder sb = new StringBuilder();
      if(horas > 0) {
          sb.append(nf.format(horas)).append(":");
      }
      if(minutos > 0) {
          sb.append(nf.format(minutos)).append(":");
      }
      if(segundos > 0) {
          sb.append(nf.format(segundos)).append(("."));
      }
      sb.append(nf.format(miliSecs));
      
      return sb.toString();
      
   }
   
   public boolean mayor(long segPlazo)
   {
      return (miliSegundos > segPlazo);
   }
}
