Вы находитесь на странице: 1из 3

/**

Este codigo fuente esta sujeto a la licencia GNU.


Se distribuye tal cual, puede ser utilizado por
otras personas por su cuenta y riesgo, el autor
no se hace responsable del uso que se pueda hacer
del mismo o sus consecuencias. Todo codigo que
se desarrolle a partir de este debe ser de libre
disposicion igualmente, y asimismo acogido a la
licencia GNU.
Copyright 2001 Antonio Nuñez
*/
// Estado: REVISADO
// Fecha revision: 17-10-2001
package saci;
import java.io.Serializable;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
* Esta clase representa una fecha en el contexto sanitario.
* Esto quiere decir que una fecha puede corresponder a un
* momento exacto de tiempo (el 12-oct-1999 a las 17:30h)
* o bien ser un dato aproximado (hace 20 años me operaron)
* @version 1.0 REVISADO 17-10-2001 INTERNACIONALIZADO
* @author Antonio Nuñez
* @since 1.0
*/
public class Fecha extends GregorianCalendar implements Serializable {
/**
* Establecemos el serialVersionUID para que sea compatible
* en el futuro con versiones antiguas de la clase.
*/
static final long serialVersionUID = -4332653121171162L;
/**
* Indica si se trata de una fecha exacta o aproximada.
* @since 1.0
*/
protected boolean fechaExacta;
/** Constructor por defecto. Los campos quedan pendientes de inicializar.
* @since 1.0
*/
public Fecha() {}
/** Constructor a base de año,mes,dia.
* @param ano El año al que corresponde la fecha (p.ej. 1975)
* @param mes Un numero que indica el mes al que
* corresponde la fecha, de 0 a 11 (p.ej. 10 es noviembre).
* Si, es un poco raro pero GregorianCalendar es asi...
* @param dia El dia del mes al que corresponde la fecha.
* @since 1.0
*/
public Fecha(int ano,int mes,int dia) { super(ano,mes,dia); }
/** Crea una instancia de Fecha a partir de un objeto de tipo Date.
* @param fecha Objeto de tipo Date que contiene la fecha que
* queremos incluir.
* @since 1.0
*/
public Fecha(Date fecha) {
super();
setTime(fecha);
}
/** Constructor a base de año, mes, dia, hora, minuto.
* @param ano El año al que corresponde la fecha (p.ej. 1975)
* @param mes Un numero que indica el mes al que
* corresponde la fecha, de 0 a 11 (p.ej. 10 es noviembre).
* Si, es un poco raro pero GregorianCalendar es asi...
* @param dia El dia del mes al que corresponde la fecha.
* @param hora La hora que corresponde a la fecha.
* @param minuto El minuto que corresponde a la fecha.
* @since 1.0
*/ public Fecha(int ano,int mes,int dia,int hora,int minuto) {
super(ano,mes,dia,hora,minuto,0);
}
/** Constructor de copia,
* @param otra La fecha que queremos copiar.
* @since 1.0
*/
public Fecha(Fecha otra) {
super();
if(otra!=null)
this.setTime(otra.getTime());
}
/** Devuelve la fecha en formato de SQL usable
* @return Un string que contiene la fecha en formato 'dd-mm-aaaa'
* @since 1.0
*/
public String dimeFechaSQL() {
return new String("'" + get(Calendar.DAY_OF_MONTH) +
"-" + (get(Calendar.MONTH)+1) +
"-" + get(Calendar.YEAR) +
"'");
}
/** Para probar...
* @param argv No se usa, hard-coded
* @since 1.0
*/
public static void main (String[] argv) {
/*
try {
Class clase = Class.forName("saci.Fecha");
java.io.ObjectStreamClass osc = java.io.ObjectStreamClass.lookup(clas
e);
System.out.println(java.util.ResourceBundle.getBundle("saci_strings")
.getString("La_clase_Fecha_tiene_como_numero_de_serie_") +
osc.getSerialVersionUID());
}
catch(ClassNotFoundException cnfe) {
System.out.println(java.util.ResourceBundle.getBundle("saci_strings")
.getString("No_se_encuentra_la_clase_saci.Fecha"));
}

try {
Fecha ahora = new Fecha();
System.out.println(ahora.dimeFechaSQL());
System.out.println(java.util.ResourceBundle.getBundle("saci_strings").getSt
ring("Son_las_") + ahora.get(Calendar.HOUR_OF_DAY));
Fecha cumple = new Fecha(1960,7,16);
System.out.println(java.util.ResourceBundle.getBundle("saci_strings").getSt
ring("Naci_el_") + cumple.dimeFechaSQL());
java.text.SimpleDateFormat formatter =
new java.text.SimpleDateFormat("EEEEEEEEE",java.util.Locale.getDefault()
);
System.out.println(java.util.ResourceBundle.getBundle("saci_strings").getSt
ring("Yo_naci_un_") + formatter.format(cumple.getTime()));
JPropertySheet psh = new JPropertySheet(cumple,50,50);
psh.addWindowListener (new java.awt.event.WindowAdapter () {
public void windowClosing (java.awt.event.WindowEvent evt) {
System.exit(0);
}
}
);
psh.pack();
psh.setVisible(true);
//System.exit(0);
}
catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
*/
System.exit(0);
}
/** Getter for property esFechaExacta.
* @return Value of property esFechaExacta.
*/
public boolean isFechaExacta() {
return this.fechaExacta;
}

/** Setter for property esFechaExacta.


* @param esFechaExacta New value of property esFechaExacta.
*/
public void setFechaExacta(boolean fechaExacta) {
this.fechaExacta = fechaExacta;
}
}

Вам также может понравиться