Obliczanie ile miesięcy upłynęło od daty

0

Witam

Chciałbym napisać funkcje obliczającą ile miesięcy upłynęło do podanej daty.

Znalazłem rozwiązanie ale nie działa w J2ME

 public static long monthsBetween(Calendar startDate) {  
        Calendar endDate = Calendar.getInstance();
        Calendar date = (Calendar) startDate.clone();  // brak funkcji clone() w J2ME
        long monthsBetween = 0;  
        while (date.before(endDate)) {  
            date.add(Calendar.MONTH, 1);    //brak funkcji add() w J2ME         
            monthsBetween++;  
        }  
        return monthsBetween;
        }

Samodzielnie napisałem coś takiego"

////startTime=startDate.getTime();
 public static long months(Date startTime){
            Date current=new Date();
            long start=startTime.getTime();
            long end=current.getTime();
            long diff=start-end;
            return diff/(1000*60*60*24*31); // 24h*31 dni
        }

jednak to też nie działa prawidłowo.
Przykład:
załóżmy ze mamy dziś 7.07.2011 a data jakiegoś wydarzenia to 12.03.2011 funkcja months()wyświetla 6 a powinno być 4:(

Macie jakieś pomysły jak napisać taką funkcję żeby działała?

0

long diff=start-end jest ujemne, gdy start < end

0

GregorianCalender zzczytasz wszystkło ładnie. Jedynie z tego co pamietam to styczen to 0

0

Zależy też jak interpretowana jest data (przypominam, że na poważnie datami się nie bawiłem). Np 12.3.2011 może być potraktowane jako 3 grudzień 2011.

1 użytkowników online, w tym zalogowanych: 0, gości: 1