02. december 2001 - 16:42Der er
29 kommentarer og 1 løsning
Kaldender ?
Nu har jeg brugt en enorm mængde tid på at få lavet en visuel kalender i java til brug i et eksammensprojekt, det gik også fint, det hele virkede, men så pludselig opdager man at der er noget galt med uge nummerene i januar måned.
Så jeg skal bruge et link til en kalender i java eller en der måske kan finde fejlen i min ?
public void drawKalender() { fraMain.getContentPane().removeAll(); for (int i = 0; i < dage.length; i++) { dage[i] = new JButton(\"\"); dage[i].setEnabled(false); dage[i].setBorder(BorderFactory.createEmptyBorder()); }
int j = 0; for (int i = 0; i < dagbetegn.length; i++) { dage[j] = new JButton(dagbetegn[i] + \" \"); dage[j].setForeground(new Color(0,0,255)); dage[j].setBorder(BorderFactory.createEmptyBorder()); dage[j++].setFont(new Font(\"Tahoma\", Font.PLAIN, 12));
}
int d = 0; c.set(y, m, d);
j = 8;
while (d <= 31) { dage[j] = new JButton(new Integer(c.get(c.WEEK_OF_YEAR)).toString()); dage[j].setForeground(new Color(0,0,255)); dage[j].setBorder(BorderFactory.createEmptyBorder()); dage[j].setFont(new Font(\"Tahoma\", Font.PLAIN, 12));
d = d + 7; j = j + 8; c.set(y, m, d); }
j = 8 + c.get(c.DAY_OF_WEEK); int i = 1;
d = 1;
c.set(y, m, d);
while (i <= 31) { if (c.get(c.MONTH) == m) dage[j] = new JButton(new Integer(i).toString()); dage[j].setBorder(BorderFactory.createEmptyBorder()); dage[j].addActionListener(this); dage[j++].setFont(new Font(\"Tahoma\", Font.PLAIN, 12));
if (j % 8 == 0) j = j + 1; i++; d++; c.set(y, m, d); }
JPanel panKalender = new JPanel(); panKalender.setLayout(new GridLayout(7,8));
for (i = 0; i < dage.length; i++) panKalender.add(dage[i]);
public void actionPerformed(ActionEvent event) { Object source = event.getSource(); if (source == btnTilbage) { if (m == 0) { m = 11; y = y - 1; } else { m = m - 1; } drawKalender(); } else if (source == btnFrem) { if (m == 11) { m = 0; y = y + 1; } else { m = m + 1; } drawKalender(); } else { for(int i = 0; i < dage.length; i++) { if (source == dage[i]) { //new Dag(dage[i].toString()); //new Dag(Integer.parseInt(dage[i].getText()), m, y); } } } } }
dage[j] = new JButton(new Integer(c.get(c.WEEK_OF_YEAR)).toString());
Så skal du passe på definitionen af ugenumre, som er forskellig i fx DK og USA. I Danmark er uge 1 den uge, der har den første torsdag i januar - eller hvordan det nu er formuleret. Hvad er din locale? Sæt den til dansk.
Og jeg beklager meget at bryde mine ellers yderst standhaftige principper om ikke at blive involveret i spørgsmål til mere end 60 point. Jeg overså det ganske enkelt. Der vil derfor ikke være nogen måde du kan give mig point på - og jeg skal gøre mig umage for at denne fejltagelse ikke gentager sig
Nå ja, der er 2 uge 14 - tror du der er nogen, der ser det :)) og også i okt og jan 2001 --- øv, det var ellers næsten korrekt.
Det er ikke et spørgsmål om jeg får 60 eller ej. Jeg deltager ganske enkelt ikke i spørgsmål, der er stillet til mere end 60. Det er nu engang mit valg - ik\' ?
yes, nu ser det ud til at virke, det er dælme dejligt, du skal have mange mange tak :)
Kunne det tænkes at du også kunne løse det lille problem som jeg har valgt at overse med at der mangler et ugenummer på den sidste uge når en måned har 6 uger som december i år ? :)
Du må hellere kalde den erikjacobsen - mere rimeligt. Men gør hvad du vil. Og næste gang du stiller spørgsmål til 80 p bliver det uden mig - ganske uanset at dette var ret underholdende :)
Så må jeg jo hellere holde mig under 60 når jeg vil have din hjælp :) Du skal ihvertfald have tak :)
Synes godt om
Ny brugerNybegynder
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.