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

Odpowiedz Nowy wątek
2011-07-07 21:36
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?

Pozostało 580 znaków

2011-07-07 22:46
0

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


Registered Linux user #456405 | SCJP 6 | SCWCD 5 | SCBCD 5

Pozostało 580 znaków

2011-07-07 22:51
0

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

Pozostało 580 znaków

2011-07-07 23:03
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.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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