introduzco dia/mes/año y quiero que me devuelva el dÃa...
Tengo una vaga idea....creo que tengo q tomar como referencia un dÃa (por ejemplo el 1/1/2001 que fue lunes) y de acuerdo con esta fecha sumar o restar años,meses, etc etc y luego aplicar un mod 7 para que me devuelva un entero y poder decir si es cero es lunes, si es 1 martes, etc etc....
pero realmente no sé bien como se hace...hay alguien que pueda echarme un cable con ello? Gracias por adelantado...
He visto otros mensajes parecidos pero creo que no me servÃan de ayuda.
pero realmente no sé bien como se hace...hay alguien que pueda echarme un cable con ello? Gracias por adelantado...
He visto otros mensajes parecidos pero creo que no me servÃan de ayuda.
Más fácil usar la clase GregorianCalendar:
/**Trovar dia de la setmana*/
public static int diaDeLaSetmana(String data) {
try{
String patron = "dd/MM/yyyy";
SimpleDateFormat format = new SimpleDateFormat(patron);
Date date = format.parse(data);
GregorianCalendar grCal=new GregorianCalendar();
grCal.setTime(date);
int dia=grCal.get(Calendar.DAY_OF_WEEK);
return dia;
}catch(java.text.ParseException e){
return -1;//error
}
}
Funciona bien.
Ahora mismo no recuerdo si lunes=0, martes=1,...
o lunes=1, martes=2,...
Esta función no se entera si la fecha introducida és correcta (32/01/2003). Para eso, una vez obtenido el Date date:
String aux=format.format(date);
if (!aux.equals(data)) {
//fecha incorrecta
}else{
//fecha correcta
}
Saludos!
/**Trovar dia de la setmana*/
public static int diaDeLaSetmana(String data) {
try{
String patron = "dd/MM/yyyy";
SimpleDateFormat format = new SimpleDateFormat(patron);
Date date = format.parse(data);
GregorianCalendar grCal=new GregorianCalendar();
grCal.setTime(date);
int dia=grCal.get(Calendar.DAY_OF_WEEK);
return dia;
}catch(java.text.ParseException e){
return -1;//error
}
}
Funciona bien.
Ahora mismo no recuerdo si lunes=0, martes=1,...
o lunes=1, martes=2,...
Esta función no se entera si la fecha introducida és correcta (32/01/2003). Para eso, una vez obtenido el Date date:
String aux=format.format(date);
if (!aux.equals(data)) {
//fecha incorrecta
}else{
//fecha correcta
}
Saludos!
Muchas gracias por la info...sabÃa que habÃa alguna manera más fácil y hela aquÃ. Gracias de nuevo.
No obstamte, cómo serÃa de la manera en que lo expliqué yo más o menos?
No obstamte, cómo serÃa de la manera en que lo expliqué yo más o menos?
Para calcular los dÃas que hay entre dos fechas (tipo Date):
/**d2 > d1*/
public static long diasEntre(Date d1, Date d2){
final long ONE_HOUR=60 * 60 * 1000L;
return ((d2.getTime()-d1.getTime()+ONE_HOUR)/(ONE_HOUR * 24));
}
Y como obtener los Date a partir de los Strings está en el otro post
El resto es fácil.
Saludos!
/**d2 > d1*/
public static long diasEntre(Date d1, Date d2){
final long ONE_HOUR=60 * 60 * 1000L;
return ((d2.getTime()-d1.getTime()+ONE_HOUR)/(ONE_HOUR * 24));
}
Y como obtener los Date a partir de los Strings está en el otro post
El resto es fácil.
Saludos!
