Muchas veces es necesario realizar operaciones sobre una fecha. No solamente sumar o restar horas sino también minutos, segundos, semanas, años, meses, etc. Para tal tarea existe en Java la clase Calendar. Esta clase nos permite modificar una fecha (Date) base a nuestro gusto usando los métodos que tiene predefinidos.
En el siguiente código se puede observar los cambios en un objeto del tipo Date usando Calendar.
Al ejecutar el codigo se obtendra el siguiente resultado:
Suscribirse a:
Enviar comentarios
(
Atom
)
Para tu ejemplo restaste 13 -5, pero ¿cómo resto un número mayor de minutos al minuendo? si quiero restar 14 minutos, calendar.minute queda con -1 y la hora no cambia.
ResponderEliminarGracias
Saludos
Hola. Los metodos set de calendario solo aceptan valores validos del para cada tipo de elemento. Por ejemplo Minuto del 0 al 59, Horas del 0 al 23, etc. Si le pones un valor fuera de este rango no realiza el cambio como dices. Para el caso que dices deberías hacer la validación y cambiar la hora y minutos.
Eliminarhola te consulto como puedo hacer para sumar 7 dias a la fecha, pero sin que aparezca la hora, minutos y segundos?
ResponderEliminares mas los dias que tengo que sumar es sobre un dato que traigo de mi base de datos. espero tu respuesta. saludos y gracias
Hola Cuba!
EliminarDe la misma forma que en los horas, minutos y meses puedes usar los metodos set y get solo que con DATE. De la siguiente forma:
cal.set(Calendar.DATE, cal.get(Calendar.DATE)+7);
buenas tardes ayudeme con la siguiente informacion, como puedo restar el tiempo, es decir la diferencia de tiempo
ResponderEliminarHOLA A TODOS. Nesecito sumar de igual forma, pero al ver que no hay forma... se me ocurre algo y espero ayudarlos (supongamos que la fecha es 25/10/2020 23:45).
ResponderEliminarCalendar cal = Calendar.getInstance();
int dia = cal.get(Calendar.DATE);
int mes = cal.get(Calendar.MONTH);
int hora = cal.get(Calendar.HOUR_OF_DAY);
int minuto = cal.get(Calendar.MINUTE);
int nuevoMin = min + 35;
Int nuevaHora = hora + 12;
Int nuevoDia = dia + 15;
If(nuevoMin > 60){
Int x = nuevoMin-60;
}
If(nuevaHora > 24){
Int y= nuevaHora-24;
}
If(nuevoDia > 31){
Int z= nuevoDia -31;
}
Y ya imprimirlo...tienes que ver si el es es de 31 o 30, o 28, y eso es mas facil
A salida seria
Eliminar09/10/2020. 11:20
Ya com eso puedes crear un metodo...
Por ejemplo en el caso de los meses
If (nuevoMes > 12){
nuevoMes = nuevoMes-12;
anio+1;
}