Avatar billede Mcoroklo Nybegynder
11. april 2009 - 18:03 Der er 4 kommentarer og
1 løsning

Nuværende uge i året

Jeg skal lave en funktion som tager en Date som input, også finder hvilken uge i året det er.

Jeg har prøvet med 2 metoder:

#Calendar forsøg
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.setMinimalDaysInFirstWeek(1);
cal.set(2009, 2, 5);   
return cal.get(Calendar.WEEK_OF_YEAR);

Dette giver uge 10, selvom det burde give uge 6.

#GregorianCalender forsøg (date er samme som før: 5. februar 2009)
SimpleTimeZone pdt = new SimpleTimeZone(3600000,
                "Europe/Paris",
                Calendar.MARCH, -1, Calendar.SUNDAY,
                3600000, SimpleTimeZone.UTC_TIME,
                Calendar.OCTOBER, -1, Calendar.SUNDAY,
                3600000, SimpleTimeZone.UTC_TIME,
                3600000);
       
Calendar calendar = new GregorianCalendar(pdt);   
calendar.setTime(date);       
return calendar.get(Calendar.WEEK_OF_YEAR);

Dette giver uge 9, selvom det burde give uge 6.


Alt i alt, så kan det godt være min teori omkring "minimalt antal dage i uge" er forkert, men det rammer ikke 3 uger ved siden af lige meget hvor meget man prøver...

Help please ;-)
Avatar billede arne_v Ekspert
11. april 2009 - 18:36 #1
Prøv med:

        Calendar cal = Calendar.getInstance();
        cal.setFirstDayOfWeek(Calendar.MONDAY);
        cal.setMinimalDaysInFirstWeek(4);
        cal.set(2009, Calendar.FEBRUARY, 5); 
        return cal.get(Calendar.WEEK_OF_YEAR);
Avatar billede arne_v Ekspert
11. april 2009 - 18:38 #2
For en forklaring prøv:

        System.out.println(Calendar.JANUARY);
        System.out.println(Calendar.FEBRUARY);
        System.out.println(Calendar.MARCH);

(jeg kan så ikke forklare *HVORFOR* der har gjordt det på den måde)
Avatar billede arne_v Ekspert
11. april 2009 - 18:39 #3
cal.setFirstDayOfWeek(Calendar.MONDAY);
        cal.setMinimalDaysInFirstWeek(4); // ikke 1 !!

bør iøvrigt være overflødigt - Java vælger ISO ugenumre hvis din locale er europæisk.
Avatar billede Mcoroklo Nybegynder
11. april 2009 - 19:47 #4
Yep, det var en løsning.

Indekseringen med Calendar starter anderledes end med Date. Super fedt...

Smid et svar :-)
Avatar billede arne_v Ekspert
11. april 2009 - 19:53 #5
kommer her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester