fechas

Bueno primero que nada una severa disculpa por que no habia podido escrivir sobre el comentario que dejaron hice un  videotutorial de como insertar un .swf en java swing ya esta nadamas que he tenido problemas para subirlo si alguien conose un servido bueno pls post it me continuando con el trabajo aqui les dejo una clase que tiene muchas operaciones para fechas (se preguntaran por que estoy muy traumado con ls fechas) lo que pasa es que en mi trabajo haora mismo desarrollo un RelogChecador cosa que implica mucho trabajo con fechas bueno pues aqui les dejo mi clase cualquer cosa avisenme porfavor la mayoria de los metodos son estaticos abajo lez dejo otro ejemplo de como se podrian mandar llamar.

Clases utilizadas:

Veamos la clase que hasta el momento estoy alimenando 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.kloneton.utilerias;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.StringTokenizer;

/**
 *
 * @author klone
 */
public class Fecha {

    public Fecha() {
    }

    /**
     * extencion de java.util.SimpleDateFormat
     * @param formato
     *  String de formato ejemplo:
     * <center>getFecha("dd/MM/yyyy")<br /> return 05/04/2009</center>
     * @see SimpleDateFormat
     * @return
     */
    public static String getFecha(String formato) {
        Date date = new Date();
        SimpleDateFormat formating = new SimpleDateFormat(formato);
        return formating.format(date);

    }

    /**
     *  Este metodo funciona con objets tipo sqlDate
     * @param formato
     * @param date
     * @return
     */
    public static String getFecha(String formato, java.sql.Date date) {
        SimpleDateFormat formating = new SimpleDateFormat(formato);
        return formating.format(date);

    }

    /**
     * Este metodo funciona con objets tipo utilDate
     * @param formato
     * @param date
     * @return
     */
    public static String getFecha(String formato, Date date) {
        SimpleDateFormat formating = new SimpleDateFormat(formato);
        return formating.format(date);

    }

    /**
     * retorna la fecha en español en formato YYYY/MMMM/DD
     * <sub>
     * <br />  YYYY= AÑO EN CUATRO DIGITOS ejemplo 2009
     * <br />  MMMM= MES EN ESPAÑOL ejemplo ABRIL
     * <br />  DD= DIA DEL MES  ejemplo 05</sub>
     * @param separador
     * Se usa para separar la cadena de fecha por ejemplo:
     * <br />
     * <center> getFechaCompletaEsp("/")
     * <br />return 2009/ABRIL/05  </center>
     * @return
     */
    public static String getFechaCompletaEsp(String separador) {
        Date date = new Date();
        SimpleDateFormat formating = new SimpleDateFormat("yyyy,MM,dd");

        StringBuffer buffer = new StringBuffer();
        StringTokenizer tokens = new StringTokenizer(formating.format(date), ",");
        buffer.append(tokens.nextElement().toString());
        buffer.append(separador);

        switch (Integer.parseInt(tokens.nextElement().toString())) {
            case 1:
                buffer.append("Enero");
                break;
            case 2:
                buffer.append("Febrero");
                break;
            case 3:
                buffer.append("Marzo");
                break;
            case 4:
                buffer.append("Abril");
                break;
            case 5:
                buffer.append("Mayo");
                break;
            case 6:
                buffer.append("Junio");
                break;
            case 7:
                buffer.append("Julio");
                break;
            case 8:
                buffer.append("Agosto");
                break;
            case 9:
                buffer.append("Septiembre");
                break;
            case 10:
                buffer.append("Octubre");
                break;
            case 11:
                buffer.append("Nobiembre");
                break;
            case 12:
                buffer.append("Diciembre");
                break;
        }
        buffer.append(separador);
        buffer.append(tokens.nextElement().toString());
        return buffer.toString().toUpperCase();
    }

    /**
     *Este metodo es utilizado para  saber en dos letras el dia de la semana<br />
     * y lo calcula por medio de la clase Calendar jsugando el dia de la semana
     * @return "Lu","Ma","Mi,"Ju","Vi","Sa","Do"
     * @see Calendar
     */
    public static String getDiaSemana() {
        String dia = "";
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        int diaInt = cal.get(Calendar.DAY_OF_WEEK);
        switch (diaInt) {
            case 1:
                dia = "Do";
                break;
            case 2:
                dia = "Lu";
                break;
            case 3:
                dia = "Ma";
                break;
            case 4:
                dia = "Mi";
                break;
            case 5:
                dia = "Ju";
                break;
            case 6:
                dia = "Vi";
                break;
            case 7:
                dia = "Sa";
                break;

        }
        return dia;
    }

    /**
     *Este metodo es utilizado para  saber en numero el dia de la semana<br />
     * y lo calcula por medio de la clase Calendar jsugando el dia de la semana
     * @return 1,2,3,4,5,6,7
     * @see Calendar
     */
    public static int getDiaSemanaInt() {

        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        return cal.get(Calendar.DAY_OF_WEEK) + 1;
    }

    /**
     * Resta un determidado numero de minutos a una hora especificada en un Calendar
     * <b>NO SE PODRA RESTAR MAS DE 60MINUTOS</B>
     * @param cal
     * @param minutosAgregar
     * @see Calendar
     */
    public static Calendar restaMinutos(Calendar cal, int mintuosARestar) {
        Calendar calendar = Calendar.getInstance();
        int hora = cal.get(Calendar.HOUR_OF_DAY);
        int minuto = cal.get(Calendar.MINUTE);
        if (minuto - mintuosARestar < 0) {
            int nuevoMinuto = 60 - mintuosARestar;
            calendar.set(0, 0, 0, hora - 1, nuevoMinuto);
        } else {
            calendar.set(0, 0, 0, hora, calendar.get(Calendar.MINUTE) - mintuosARestar);
        }
        return calendar;
    }

    /**
     * Agrega un determidado numero de minutos a una hora especificada en un Calendar
     * * <b>NO SE PODRA AGREGAR MAS DE 60MINUTOS</B>
     * @param cal
     * @param minutosAgregar
     * @see Calendar
     */
    public static Calendar agregaMinutos(Calendar cal, int minutosAgregar) {
        Calendar calendar = Calendar.getInstance();
        int hora = cal.get(Calendar.HOUR_OF_DAY);
        int minuto = cal.get(Calendar.MINUTE);
        if (minuto + minutosAgregar >= 60) {
            int nuevoMinuto = minuto - 60;
            nuevoMinuto -= minutosAgregar;
            calendar.set(0, 0, 0, (hora + 1), nuevoMinuto, Calendar.MINUTE);
        } else {
            calendar.set(0, 0, 0, hora, cal.get(Calendar.MINUTE) + minutosAgregar);
        }
        return calendar;
    }

    /**
     * comp es el Calendar a comparar return true si cal menor comp si no false
     * @param cal
     * @param comp
     * @return
     */
    public static boolean esMenor(Calendar cal, Calendar comp) {
        if (cal.compareTo(comp) <= 0) {
            return true;
        } else {
            return false;
        }

    }

    /**
     *
     * @param cal
     * @param comp
     * @return
     */
    public static boolean esMayorIgual(Calendar cal, Calendar comp) {

        if (cal.compareTo(comp) > 0) {
            return true;

        } else {
            return false;
        }

    }

    /**
     *
     * @param buscar
     * @param menor
     * @param mayor
     * @return boolean
     */
    public static boolean esEntre(Calendar buscar, Calendar menor, Calendar mayor) {

        if (esMayorIgual(buscar, menor) && esMenor(buscar, mayor)) {
            return true;
        } else {
            return false;
        }

    }

    /**
     * Este metodo funciona para encontrar la diferencia en dias entre dos Calendar
     * @param inicio
     * @param fin
     * @return
     */
    public static long diferenciaDates(Calendar inicio, Calendar fin) {
        long diferenciaMilis = fin.getTimeInMillis() - inicio.getTimeInMillis();
        long diferenciaDias = diferenciaMilis / (1000 * 60 * 60 * 24);
        return diferenciaDias;

    }
}
como se pueden ver todos los metodos son estatic s aqui les pongo el ejemplo de como se podrian utilizar ya en un main 
public static void main(String args[]) {
        System.out.println(Fecha.getDiaSemana()); // salida Ju
        System.out.println(Fecha.getFechaCompletaEsp("-")); // salida 2009-MAYO-07
        System.out.println(Fecha.getFecha("dd/MM/yyyy hh:mm:ss aa", new Date()));
        Calendar calendarAagregar=Calendar.getInstance();// inicializamoz nuestro calendar con la fecha  de haorita 2008-05-07 13:17:00
        Calendar calendarNuevo=Fecha.agregaMinutos(calendarAagregar, 20);
        Date fechaSalida=calendarNuevo.getTime();//extraemos el objeto Date para poder ulizar nuestros metodos
        System.out.println(Fecha.getFecha("dd/MM/yyyy hh:mm:ss aa",fechaSalida)); // salida 2008-05-07 13:37:00
    }
Muchas gracias por dedicarme unos minutos hasla luego ojala que para hoy ya este arriba el Video tutorial saludos.
Advertisement