Я сделал небольшую программу для подсчета дней. посчитать 150 дней с 22 мая. Но результат - 18 октября. Фактическая дата - 19 октября. Может ли кто-нибудь помочь мне найти, что не так с моим кодом.Java Calendar Issue
Calendar mine = new GregorianCalendar(2013, Calendar.MAY,22);
int month = Calendar.MAY;
int counter = 0;
for(int i=mine.get(Calendar.DAY_OF_MONTH);i<=mine.getActualMaximum(Calendar.DAY_OF_MONTH);i++){
System.out.println("i "+i);
counter++;
System.out.println("counter "+counter);
if(i==mine.getActualMaximum(Calendar.DAY_OF_MONTH)){
month++;
i=1;
mine.set(2013, month, i);
counter++;
System.out.println("i "+i+" "+mine.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH));
if(counter == 150){
System.out.println("day "+i+ counter +"days"+ "month:"+ mine.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH));
break;
}
}
if(counter == 150){
System.out.println("i "+i+" counter "+ counter +" date:"+mine.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.ENGLISH));
break;
}
}
Если вы НЕОБХОДИМО использовать «Календарь», было бы лучше использовать [Joda Time] (http://joda-time.sourceforge.net/) – MadProgrammer
oh Я думал, что календарь - это мой единственный вариант. Благодарю. Я должен попробовать Joda Time. – shan
Joda Time берет на себя лучшие високосные годы и секунды, а странность вокруг границ века ... – MadProgrammer