2011-08-30 9 views
9

que estoy usando:Añadir una cierta cantidad de tiempo a una hora y escribirlo

Calendar c = Calendar.getInstance(); 

con la que me sale una hora,

String sHour = c.get(Calendar.HOUR_OF_DAY) 
String sMinute = c.get(Calendar.MINUTE) 

Lo que necesito es añadir, por ejemplo, 1 hora 10 minutos: guárdela en una variable y también resta, digamos 10 minutos, y guárdela como otra variable. (Necesito usar ambos en un TextView)

He visto el método add(); en la documentación de Android, pero parece que no puedo entender cómo funciona.   Gracias

Respuesta

24

El código que ha publicado no se compilará, ya que Calendar.get() no devuelve una cadena. También debe tener en cuenta que el calendario es mutable: no es como si cada llamada al add devuelve un nuevo calendario. Por lo tanto, deberá crear una nueva instancia cada vez que desee una variable separada para un valor diferente. Por ejemplo:

Calendar now = Calendar.getInstance(); 

Calendar tmp = (Calendar) now.clone(); 
tmp.add(Calendar.HOUR_OF_DAY, 1); 
tmp.add(Calendar.MINUTE, 10); 
Calendar nowPlus70Minutes = tmp; 

tmp = (Calendar) now.clone(); 
tmp.add(Calendar.MINUTE, -10); 
Calendar nowMinus10Minutes = tmp; 

Si es posible, me gustaría fuertemente recomendamos que utilice Joda Time en lugar de Calendario/- es un API superiores lejos. Sin embargo, es posible que desee recortar las zonas horarias incluidas, de modo que sea más rápido comenzar y menos sobrecarga en su apk.

+0

Perfectamente me ayudó, gracias –

4

Simplemente puede llamar al System.currentTimeMillis() + INTERVAL.

donde el intervalo es el intervalo en milisegundos (por ejemplo:

public static final long INTERVAL = 1000 * 60 * 60 * 24; // 1 day 
+1

Gracias esto también es el enfoque correcto. – jackal

Cuestiones relacionadas