2012-09-29 14 views
7

Estoy usando el calendario de Java para configurar una alarma en una fecha y hora específicas. Sé cómo hacer que esto funcione cuando el usuario selecciona un fecha y hora específicas. Por ejemplo, si el usuario desea configurar una alarma el 17 de julio de 2013 a las 10:45 AM, estoy usando el siguiente código:Cómo configurar Java.util.calendar a un período de tiempo específico en el futuro

//Get the calendar instance. 
Calendar calendar = Calendar.getInstance();  

//Set the time for the notification to occur. 
calendar.set(Calendar.YEAR, 2013); 
calendar.set(Calendar.MONTH, 6); 
calendar.set(Calendar.DAY_OF_MONTH, 17);     
calendar.set(Calendar.HOUR_OF_DAY, 10); 
calendar.set(Calendar.MINUTE, 45); 
calendar.set(Calendar.SECOND, 0); 

Todo el código anterior funciona muy bien cuando quiero establecer una alarma en fecha y hora específicas. Mi pregunta es, ¿cómo puedo configurar una instancia de calendario donde el usuario usuario quiere que se active una alarma 20 minutos desde la fecha y hora actual? Entonces, si la hora actual es 6:50 PM, necesito que la alarma suene a las 7:10 PM. ¿Cómo puedo configurar esto programáticamente?

Intenté obtener la fecha y hora actual a través de los métodos incorporados de Java.util.calendar e intenté agregar 20 minutos a la variable Calendar.MINUTE. Sin embargo, no creo que esto sirva para nada si la hora actual está a menos de 20 minutos de la medianoche (la fecha cambiará) o a 20 minutos de otra hora (la hora cambiará). ¿Cómo puedo evitar este problema? ¡Gracias por toda tu ayuda!

+0

echar un vistazo a la Calendar.add() método – GreyBeardedGeek

Respuesta

2

También puede probar este

Calendar c = Calendar.getInstance(); 
c.setTime(new Date()); // 
c.add(Calendar.YEAR, 5); // Add 5 years to current year 
c.add(Calendar.DATE, 5); // Add 5 days to current date 
c.add(Calendar.MONTH, 5); // Add 5 months to current month 
System.out.println(c.getTime()); 
Cuestiones relacionadas