Avatar billede bertelsenbo Nybegynder
01. februar 2007 - 15:16 Der er 5 kommentarer og
1 løsning

Java kalender, DAY_OF_WEEK giver forkert resultat

Jeg skulle lave en kalender i JAVA til skolen, men når DAY_OF_WEEK giver et direkte forkert resultat uden at jeg ved hvorfor.

Som min RIGTIGE kalender fortæller mig, så starter Januar d. 1 2007 på en Mandag. Hvor DAY_OF_WEEK burde give 2 (eller 1?). Men min bliver VED med at give 5 (Torsdag), det gør den også 1. febuar 07 som VIRKELIG starter på en Torsdag (som er idag).

Her et mit kode eksempel:

package Phonebook;
import java.util.GregorianCalendar;

public class DagIUge {

    public DagIUge() {
        GregorianCalendar gregKalender = new GregorianCalendar(2007, 1, 1);
System.out.println(gregKalender.get(GregorianCalendar.DAY_OF_WEEK));
    }

        public static void main(String[] args) {
        new DagIUge();
    }   
}

Resultatet jeg får her er 5, hvor det burde være 2.

Selv hvis jeg bruger:        gregKalender.setFirstDayOfWeek(GregorianCalendar.MONDAY); bliver det 5.

Hvad går der galt og hvordan kan jeg "fixe" det?
Tag min kode og prøv den. Får i samme resultat?
Avatar billede arne_v Ekspert
01. februar 2007 - 15:34 #1
1 er Calendar.FEBRUARY
Avatar billede arne_v Ekspert
01. februar 2007 - 15:34 #2
GregorianCalendar gregKalender = new GregorianCalendar(2007, Calendar.JANUARY, 1);
Avatar billede erikjacobsen Ekspert
01. februar 2007 - 15:42 #3
Eller knap så kryptisk:
  GregorianCalendar gregKalender = new GregorianCalendar(2007, 0, 1);
Skulle gerne udskrive 2 for mandag, hvis jeg husker ret.
Avatar billede erikjacobsen Ekspert
01. februar 2007 - 15:43 #4
"det gør den også 1. febuar 07 " - det er nok fordi du har fundet den i marts måned (marts har index 2)
Avatar billede bertelsenbo Nybegynder
01. februar 2007 - 15:44 #5
Jeg falder i på det ældste trick i JAVAbogen. Man starter med 0 og ikke 1.

Mange tak Arne, svar for point.
Avatar billede arne_v Ekspert
01. februar 2007 - 15:58 #6
svar
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