Respuesta:
package fecha;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
* @web http://jc-mouse.blogspot.com/
* @author Mouse
*/
public class cfecha {
private String mifecha;
private String fechaini = "25/05/1809";
private int dia= 1;
private int mes = 1;
private int anio =1900;
public cfecha(){
SimpleDateFormat formateador = new SimpleDateFormat(
"dd/MM/yyyy", new Locale("es_ES"));
Date fechaDate = new Date();
mifecha = formateador.format(fechaDate);
}
public String getFecha(){
return mifecha;
}
public boolean setFecha(int d, int m, int y){
boolean esfecha =true;
if (ValidaFecha(mifecha)){
if ((d >= dia)&& (m >= mes)&& (y >= anio))
{
mifecha= d + "/" + m + "/" + y;
esfecha=true;
}
else
{
esfecha=false;
}
}
else
{
esfecha=false;
}
return esfecha;
}
/**
Valida una fecha si el formato de entrada es igual a dia/mes/año
*/
private boolean ValidaFecha(String f) {
try {
//ayuda a mostrar la fecha respecto a un formato dado
//en este caso dia/mes/año
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy",Locale.getDefault());
//desabilita el modo permisivo osea que si es introduce una fecha invalida la ignorara
// y no la convertira a una fecha equivalente valida
formatoFecha.setLenient(false);
//Convierte la cadena introducida en una fecha
formatoFecha.parse(f);
} catch (ParseException e) {
// si se produce un error en la conversion devuelve false= fecha no valida
return false;
}
return true;
}
/*
Devuelve el numero de dias transcurridos desde una fecha inicial dada como constante
* si la fecha introducida es menor a esa fecha, devuelve cero
*/
public int DiasTranscurridos(){
try {
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
Date f1 = formatoFecha.parse(fechaini);
Date f2 = formatoFecha.parse(mifecha);
if (f1.before(f2)) {
long f3 = f1.getTime();
long f4 = f2.getTime();
long resta = f4-f3;
double dias = Math.floor(resta/(1000 * 60 * 60 * 24));
return (int) dias;
} else {
return 0;
}
} catch (ParseException ex) {
return 0;
}
}
}
Para implementar la clase cfecha.java .
package fecha;
/**
* @web http://jc-mouse.blogspot.com/
* @author mouse
*/
public class Main {
public static void main(String[] args) {
cfecha f = new cfecha();
if (f.setFecha(1, 14,1800)){
System.out.println("Fecha introducida: " + f.getFecha());
System.out.println(f.DiasTranscurridos() + " dias trasncurridos");
}
else
{
System.out.println("No es un fecha valida");
}
}
}
1 comentarios:
yo tengo un problema con la fecha y es que no se como hacer q se valide en mysql y q despues me la muetre en el formato de netbeans
Publicar un comentario