Supongamos que actualmente la fecha es 28 de mayo. Si llamo a los siguientes comandos para que la salida se convierta enAgregar un día a un calendario en Android falla en 31st
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 va a saltar en el próximo mes. Y por qué se quedó en el 31. (pero realmente cuando usted menos uno salta a 29.
rollo sólo "rollos" el campo se está cambiando y no cambia los campos más grandes – IncrediApp
http://docs.oracle.com/ javase/1.4.2/docs/api/java/util/Calendar.html # roll (int, int) – IncrediApp
@IncrediApp parece estar en lo cierto, la explicación en rollo sugiere en sentido contrario en primer lugar _ "Incrementar o disminuir el especificado campo y ajustar el valor del campo cuando va más allá del valor máximo o mínimo para la fecha actual. Otros campos se ajustarán según sea necesario para mantener una fecha coherente."_ – Kostronor