25. oktober 2003 - 17:12Der er
51 kommentarer og 1 løsning
Hjælp til programmering af skudårskode
Hejsa
Hvordan laver jeg en kode, som hvis tallet er fx. 1400,skal den dividerer med 400 for at finde ud af, om året er et skudår, og hvis det er 2003 skal den bare dividerer med 4? Jeg vil kun have lidt til inspiration, så jeg kan programmerer videre selv. Skal lige siges, at den skal laves i en class, hvor jeg fra en anden class, kan hente den koden.
Man kan lave den med en substring og en if-sætning, så vidt jeg har fundet ud af, men en der kan hjælpe?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
ja, men når jeg mener dividerer, så mener jeg også %... Men jeg skal lave et program, som kan finde ud af, om tallet er et århundrede tal, som kan gøres ved at tjekke, om årstallet har 00 til sidst, men hvordan gør jeg det? :|
"100 år er ikke skudår med mindre 400 går op i året...derfor er 2000 skudår men 1900 er ikke" Det fatter jeg ikke noget af... Hvad er det for en regel? :-)
public class Opgave2kontrol { public static void main(String args[]) { Opgave2 k = new Opgave2(); System.out.println("Vi er i aar " + k.skudaar(2003)); System.out.println("Vi er i maaned " + k.maaned(8)); System.out.println("Maaned " + k.maaned(8) + " indeholder " + k.dpm(8) + " dage"); System.out.println("Idag er det den " + k.dage(10) + ". dag i maaned " + k.maaned(8)); System.out.println("Datoen er: " + k.dage(10) + "/" + k.maaned(8) + "/" + k.skudaar(2003)); } }
Har nu mine to koder: public class Opgave2 { //Laver en public integer //Og derinde er der en array //Som viser "månedens tal dato" public int maaned(int maan) { int[] MaanedDato = { 0, 01, 02, 03, 04, 05, 06, 07, 8, 9, 10, 11, 12 }; return MaanedDato[maan]; } //laver igen en public integer //Og derinde er der også en array //Som viser hvor mange dage //Der er på i den pågældende måned public int dpm(int mon) { int[] DagePerMaaneder = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 }; return DagePerMaaneder[mon]; } //Laver igen igen en public integer //Og derinde er der igen igen(:)) en array //Som indeholder de antal dage, som der højst kan være i en måned public int dage(int dag) { int[] AntalDage = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }; return AntalDage[dag]; } //En public void, som ser om int aar er et skudaar public void skudaar(int aar) { if( aar % 400 == 0 ) { System.out.println(aar + " er et skudaar!"); } else if( aar % 100 == 0 ) { System.out.println(aar + " er ikke et skudaar!"); } else if( aar % 4 == 0 ) { System.out.println(aar + " er et skudaar!"); } else { System.out.println(aar + " er ikke et skudaar!"); } } }
og
public class Opgave2kontrol { public static void main(String args[]) { Opgave2 k = new Opgave2(); System.out.println("Vi er i aar " + k.skudaar(2003)); System.out.println("Vi er i maaned " + k.maaned(8)); System.out.println("Maaned " + k.maaned(8) + " indeholder " + k.dpm(8) + " dage"); System.out.println("Idag er det den " + k.dage(10) + ". dag i maaned " + k.maaned(8)); System.out.println("Datoen er: " + k.dage(10) + "/" + k.maaned(8) + "/" + k.skudaar(2003)); } }
får denne fejl når jeg compiler sidste nævnte: --------------------Configuration: j2sdk1.4.2_01 <Default>-------------------- C:\Programmer\Xinox Software\JCreator LE\MyProjects\Opgave2kontrol.java:6: 'void' type not allowed here System.out.println("Vi er i aar " + k.skudaar(2003)); ^ C:\Programmer\Xinox Software\JCreator LE\MyProjects\Opgave2kontrol.java:10: 'void' type not allowed here System.out.println("Datoen er: " + k.dage(10) + "/" + k.maaned(8) + "/" + k.skudaar(2003)); ^ 2 errors
public int maaned(int maan) { int[] MaanedDato = { 0, 01, 02, 03, 04, 05, 06, 07, 8, 9, 10, 11, 12 }; return MaanedDato[maan]; } når jeg skriver 08 og 09, så skriver den at int'en bliver for stor? Hvorfor det og hvad kan jeg gøre ved det?
Du kan ikke bestemme at en int skal have foranstillede nuller. Det er bare en int.
0777 betyder faktisk tallet 777 i det oktale talsystem (8-talssystemet). Det er sådan en lidt nørdet ting .... ;) Da cifferet 8 ikke findes i 8-talssystemet, giver 08 en fejl.
Nej, skal lave det selv, men vil bare lige se. Takker for koden. Kan du hjælpe mig med, at hvis det er skudår, så skal februar måned plusses med en? Min kode er den samme, som jeg har skrevet før
Med det får jeg fejlen: C:\Programmer\Xinox Software\JCreator LE\MyProjects\Opgave2.java:19: 'void' type not allowed here if((mon == 2) && skudaar(aar)) res++; ^ 1 error
Nej, men du har hjulpet mig med andre problemer. Takker mange gange.
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.