La adición de un día a un calendario en Android falla el 31
Supongamos que la fecha actual es el 28 de mayo. Si llamo a los siguientes comandos para que la salida se convierta en
cal.add(Calendar.DATE, 1); // Day = 29 cal.add(Calendar.DATE, 1); // Day = 30 cal.add(Calendar.DATE, 1); // Day = 31 cal.add(Calendar.DATE, 1); // Day = 31 cal.add(Calendar.DATE, -1); // Day = 29
¿Por qué esto no es saltar en el próximo mes. Y por qué Se pegó en el 31. (Pero realmente cuando menos uno salta a 29.
- HttpURLConnections persistentes en Android
- Cargando varios videos de AdMob
- ¿Cómo burlar el método de Bundle en Android Unit-Test?
- Android ListView: Cómo agregar una fila con un botón
- ¿Puede alguien ayudarme con Android RemoteControlClient?
- ¿Cómo usar Android REGEX con clases de patrón y Matcher?
- Cómo hacer un archivo jar único de varias clases que se pueden utilizar en otros proyectos
- ¿Por qué el método onNewIntent (intento de intención) es llamado dos veces?
- "Se ha producido un error al activar automáticamente el paquete com.android.ide.eclipse.adt"
- ¿Cómo comprobar con gracia si un recurso bruto no existe?
- Error de java.lang.outofmemory (servicios web) en android
- Android: java.lang.OutOfMemoryError:
- Obtener un objeto JSON desde una respuesta HTTP
Cuando agrega 1 al campo Calendar.DATE, debe incrementar el mes también cuando se alcance el final del mes (31 en el caso de mayo) de modo que usted escribió no tiene sentido. Debug y asegúrese de que el valor del día es de hecho lo que usted piensa que es
Usted puede hacer fácilmente esto de dos maneras simples mi amigo. El primero es:
Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, 1);
Y el segundo es:
Calendar cal = Calendar.getInstance(); cal.add(Calendar.HOUR_OF_DAY, 24);
Creo que le gustaría encontrar esta cosa. Gracias.
Parece que estoy equivocado! De acuerdo con la api, roll sólo actualiza el campo spezific!
Si agregas días a un intento de calendario
cal.roll(Calendar.DATE, 1);
Esto incrementará el mes y el año cuando se sobrevole
¿Qué implementación de Calendar está utilizando? Porque parece que funciona para todos los demás …
Comprobé, agrega con éxito. Mira mi código y o / p:
Calendar cal = Calendar.getInstance(); // today is 09-Aug-2012 for(int i=0;i<23;i++) { cal.add(Calendar.DATE, 1); } System.out.println(cal.get(Calendar.DAY_OF_MONTH));
O / p
1
No es una respuesta, sólo una pista: Me pareció que sucede cuando el horario de verano comienza entre las fechas. Tal vez sea tu caso
Por ejemplo: El DST de Brazillian comenzó este año en "Sun Oct 20 00:00:00 2013"
Calendar cal = Calendar.getInstance(); // today = Sat Oct 19 00:00:00 BRT 2013 cal.add(Calendar.DATE, 1); // = Sat Oct 19 23:00:00 BRT 2013
Por desgracia, todavía no sé cómo solucionarlo.
Esto también debe hacer el truco.
Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_YEAR, 1);
Puede probar que funciona con:
for (int i = 0; i < 365; i++) { cal.add(Calendar.DAY_OF_YEAR, 1); System.out.println(cal.getTime().toString()); }
- Android: cómo crear Switch caso de esto?
- ¿Cómo puedo importar la biblioteca de diseño de material a Android Studio?