01. november 2005 - 16:31Der er
16 kommentarer og 1 løsning
Problemer med kalender i BlueJ
Hej,
Sidder og er igang med at lave en kalender i programmet BlueJ og er stødt på problemer. Kalender virker indtil videre således at den skifter når man bruger funktionen takeADayOff og virker mht. antal dage og antal måneder, således at den skifter tilbage til januar efter 31. december.
Nu er problemet at jeg skal have implementeret årstal ind i kalenderen, således at årstallet skifter og sådan at der samtidig bliver taget hensyn til om det er skudår - og om der er 28, 29, 30 eller 31 dage i måneden.
Jeg har lavet to classes, som kan ses nedenunder og har indsat koden til at beregne antal dage i måneden og om det er skudår eller ej. Jeg sidder dog fast i den del, hvor jeg skal få metoderne implementeret i hinanden, således at kalender kommer til at fungere mht. årstal osv.
(det er med vilje at jeg ikke får vist årstallet i min print fuktion, ønsker kun dag og måned. Har kun årstallet med til at beregne det korrekte antal dage i måneden)
Håber der er nogen der kan hjælpe mig på vej!
Class "CalenderDisplay" -------------------------------------- public class CalenderDisplay { private Display day; private Display month; private Display year; private String displayString;
public CalenderDisplay() { day = new Display(31); month = new Display(12); year = new Display(0); updateDisplay(); }
public CalenderDisplay(int days, int months, int years) { day = new Display(31); month = new Display(12); year = new Display(0); setDate(days, months, years); }
Kendte ikke til de klasser, men det laves i led med en opgave som vi arbejder på i min udd. og derfor er der visse retningslinjer.
Og ja, den skifter dato - men når den beregner maxlimit for måned, skal den finde ud af hvor mange dage der er i måneden og hvis det er skudår, er det jo anderledes for februar. Det er implementeringen af årstallet der ikke virker.
Før satte den årstallet til 1, hvis jeg skrev tal over 31 i year. Men desværre står jeg stadig med problemet med, at når jeg bestemmer limit skal den tage daysInMonth i betragning og det kan jeg bare ikke få den til.
Det kunne den godt compile, men den vil stadig ikke rette sig efter det. Hvis jeg f.eks. prøvede med datoen 28/2-2005, kunne jeg gå helt op til 31/2 inden den skiftede til 1/3. Kan ikke se hvorfor den ikke kan finde ud af det med måneden.
public CalenderDisplay(int days, int months, int years) { day = new Display(daysInMonth(months,years)); month = new Display(12); year = new Display(9999); setDate(days, months, years); }
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.