Giả sử ngày hiện tại là ngày 28 tháng 5. Nếu tôi gọi các lệnh sau để đầu ra trở thànhThêm một ngày vào Lịch trong Android không thành công vào ngày 31 tháng
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
Tại sao điều này không chuyển sang tháng tiếp theo. Và tại sao nó bị kẹt ở tuổi 31. (nhưng thực sự khi bạn trừ đi nó nhảy đến 29.
cuộn chỉ "cuộn" lĩnh vực bạn đang thay đổi và không thay đổi các lĩnh vực lớn hơn – IncrediApp
http://docs.oracle.com/ javase/1.4.2/docs/api/java/util/Calendar.html # roll (int, int) – IncrediApp
@IncrediApp có vẻ như bạn đúng, lời giải thích trên cuộn đề xuất đến hướng khác ở vị trí đầu tiên _ "Tăng hoặc giảm các quy định trường và bọc giá trị của trường khi nó vượt quá giá trị lớn nhất hoặc tối thiểu cho ngày hiện tại. Các trường khác sẽ được điều chỉnh theo yêu cầu để duy trì một ngày nhất quán."_ – Kostronor