[ p_sasko @ 13.10.2005. 11:50 ] @
Naime problem je sledeci.
Potrebno je izracunati broj dana izmedju dva datuma.
Ranije sam racunao sa getTime() pa razlika pa se to deli sa necim itd. ali posle 30 dana gresa.
Kod dodavanja postoji funkcija u Calendar klasi koja lepo radi.
(add(int field, int value))

Ima li neko primer za ovako nesto???
Pozdrav...
[ x VITA x @ 13.10.2005. 12:01 ] @
ja sam to bas pre neki dan ovako resio


Code:
    

private String getFormatedDuration(long in) {
        String out="";

        long secs = in % 60;
        long mins = in/60;
        long hrs  = mins/60;
        mins      = mins% 60;

        if(hrs==0){
            if(mins==0)
                out = secs+" sec";

            else
                out= mins+" min";
            
        }else
            out=hrs+" h "+mins+" min";
        

        return out;
    }



pa pozivam metodu sa
Code:
getFormatedDuration((secondDate.getTime()-firstDate.getTime())/1000)



[Ovu poruku je menjao x VITA x dana 13.10.2005. u 13:03 GMT+1]
[ smrz @ 13.10.2005. 12:44 ] @
@x VITA x
To nije ono što je čovek tražio, čitaj pažljvije. Lako je izračunati minute kada njih uvek ima 60 u satu. Sa danima nije isto.

@p_sasko
Nažalost, ne postoji standardni način (standarni API) za ono što ti treba

evo ovde imaš jedan način:
http://www.javaworld.com/javaw...w-03-2001/jw-0330-time-p3.html

Code:

   public int getDays(GregorianCalendar g1, GregorianCalendar g2) {
      int elapsed = 0;
      GregorianCalendar gc1, gc2;

      if (g2.after(g1)) {
         gc2 = (GregorianCalendar) g2.clone();
         gc1 = (GregorianCalendar) g1.clone();
      }
      else   {
         gc2 = (GregorianCalendar) g1.clone();
         gc1 = (GregorianCalendar) g2.clone();
      }

      gc1.clear(Calendar.MILLISECOND);
      gc1.clear(Calendar.SECOND);
      gc1.clear(Calendar.MINUTE);
      gc1.clear(Calendar.HOUR_OF_DAY);

      gc2.clear(Calendar.MILLISECOND);
      gc2.clear(Calendar.SECOND);
      gc2.clear(Calendar.MINUTE);
      gc2.clear(Calendar.HOUR_OF_DAY);

      while ( gc1.before(gc2) ) {
         gc1.add(Calendar.DATE, 1);
         elapsed++;
      }
      return elapsed;
   }
[ x VITA x @ 13.10.2005. 13:25 ] @
pa ok istina.. ali isto svaki dan ima 24 casa :)

samo da doda jos taj deo i to je to

mada i ovo drugo resenje je skroz na mestu...
[ smrz @ 13.10.2005. 13:50 ] @
U pravu si. Ja sam se prebacio na mesece. E tu već ne bi moglo tako da se računa.
[ p_sasko @ 14.10.2005. 13:58 ] @
Pa ta racunica i jeste problem.
Evo probaj da nadjes br. dana izmedju 1.3.2002 i 1.4.2002 (znaci br dana za
mart)
U javi bi to bilo
Code:

java.util.Date d1= new java.util.Date(2002,3,1);
java.util.Date d2= new java.util.Date(2002,2,1);

Pa razliku (d1-d2)!
Kod mene je pokazivao 30 a treba 31.
[ x VITA x @ 14.10.2005. 15:53 ] @
ako radis sa getTime koja vraca broj milisekundi onda kad dobijes broj koji predstavlja broj milisekundi iszmedju njega formatiraj kako hoces...
ima da radi sta god da uneses...
[ korisnicko_ime @ 18.01.2008. 22:59 ] @
Jedno banalno pitanje.U bazi imam vreme upisano u UNIX formatu (milisekunde od 1970...).

Kako da ga pravilno formatiram u nesto tipa

18.01.2007 23:58 a u bazi je zapisano tipa 1200697125234
[ samilen @ 20.01.2008. 02:03 ] @
Napravi svoj datum koji nasleđuje Date,
Napravi mu konstruktor koji prima šta tebi odgovara (Broj milisekundi)
i odmah u konstruktoru inicijalizuj klasu sa milisekundama pomoću

setTimeInMillis(vrednost)

zatim koristi objekat i čitaj šta god ti treba od podataka.