jueves, 16 de junio de 2011

El mundo de las fechas en java

 Mientras terminaba el proyecto de fin de curso me di cuenta que el manejo 
de fechas en java lo requiere muchas situaciones, hay demasiada información
en Internet que puede liarte mas de lo que ya lo estas así que decidí 
hacer una pequeña clase de manejo de fechas. 
 Serán funciones sencillas y posiblemente útiles a la hora de programar
nuestras aplicaciones.
 
El código seria el siguiente:
 
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
//@author  RisuLau
public class ManejadorFechas
{
  //Metodo que se usara para conseguir la fecha actual
  //@return devolvera un String con la fecha actual 
  //    formato "dd-MM-yyyy"
  public static String getFechaActual() {
    Date ahora = new Date();
    SimpleDateFormat formateador = new SimpleDateFormat("dd-MM-yyyy");
    return formateador.format(ahora);
  }

  //Metodo que nos servira para sumarle una cantidad de dias determinada a una fecha
  //@param fch Es la fecha que usaremos para sumarle los dias
  //@param dias Es el número de días que deseas sumarle
  //@return La fecha resultado de la suma
  public static java.util.Date sumarFechasDias(java.util.Date fch, int dias) {
     Calendar cal = new GregorianCalendar();
     cal.setTimeInMillis(fch.getTime());
     cal.add(Calendar.DATE, dias);
     return new java.util.Date(cal.getTimeInMillis());
  }

  //Metodo que nos servira para sumarle una cantidad de dias determinada a una fecha
  //@param fch Es la fecha que usaremos para sumarle los dias
  //@param dias Es el número de días que deseas restarle 
  //@return La fecha resultado de la resta
  public static synchronized java.util.Date restarFechasDias(java.util.Date fch, int dias)
{
     Calendar cal = new GregorianCalendar();
     cal.setTimeInMillis(fch.getTime());
     cal.add(Calendar.DATE, -dias);
     return new java.util.Date(cal.getTimeInMillis());
  }

  //Metodo que usaremos para comprobar cuantos dia de diferencia hay entre dos fechas
  //@param fechaInicial Sera la fecha con la que empezaremos a contar
  //@param fechaFinal  Sera la fecha con la que acabaremos de contar
  //@return Retorna el numero de dias entre dos fechas
  public static synchronized int diferenciasDeFechas(Date fechaInicial, Date fechaFinal) {

     DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
     String fechaInicioString = df.format(fechaInicial);
     try {
       fechaInicial = df.parse(fechaInicioString);
     } catch (ParseException ex) {
}

     String fechaFinalString = df.format(fechaFinal);
     try {
       fechaFinal = df.parse(fechaFinalString);
     } catch (ParseException ex) {
     }

     long fechaInicialMs = fechaInicial.getTime();
     long fechaFinalMs = fechaFinal.getTime();
     long diferencia = fechaFinalMs - fechaInicialMs;
     double dias = Math.floor(diferencia / (1000 * 60 * 60 * 24));
     return ((int) dias);
  }
}
 
Espero haver ayudado y solucionado algun problema. hasta la proxima publicación

No hay comentarios:

Publicar un comentario