26. oktober 2003 - 21:12Der er
25 kommentarer og 1 løsning
Boolean i en string
public class Opgave2 { //Laver en public string //Og derinde er der en array //Som viser "månedens tal dato" public String maaned(int maan) { String[] MaanedDato = { "0", "01", "02", "03", "04", "05", "06", "07", "08", "09", "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 aar) { int[] DagePerMaaneder = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 }; int res = DagePerMaaneder[mon]; if((mon == 2) && skudaar(aar)) res++; return res; } //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 boolean skudaar(int aar) { if( aar % 400 == 0 ) { System.out.println(aar + " - det er skudaar!"); return true; } else if( aar % 100 == 0 ) { System.out.println(aar + " - det er ikke skudaar!"); return true; } else if( aar % 4 == 0 ) { System.out.println(aar + " - det er skudaar!"); return true; } else { System.out.println(aar + " - det er ikke skudaar!"); return true; } } }
og min anden class:
public class Opgave2kontrol { public static void main(String args[]) { Opgave2 k = new Opgave2(); System.out.print("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, 2003) + " dage"); System.out.println("Idag er det den " + k.dage(10) + ". dag i maaned " + k.maaned(8)); String DDMMYYYY = k.dage(10) + "/" + k.maaned(8) + "/"; System.out.print(DDMMYYYY); k.skudaar(2003); } }
Problemet er, at jeg skal kunne hive en dato frem i DDMMYYYY, men da min "skudaar" er en boolean, så kan jeg ikke få den ned i min string, uden den laver fejl. En idé?
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.
Jo, men jeg skal have den til at skrive, hvis det er skudår og jeg kunne ikke lige finde andre muligheder, da alt skal kunne hives frem ved at ændre på en variable. Derudover skal "k.skudaar(2003" være uden for System.out.println();, da den ellers vil melde fejl! Det er faktisk noget af det, som jeg spørger om :)
Nej, det skal være "public boolean", for den skal alene lave beregningen. Den må intet skrive ud (testudskrifter mens man udvikler er ok).
Tænk på at din funktion også skal kunne bruges i et program der ellers er på Swahili. Andetsteds sker udskrivningen, og din funktion er altid den samme.
Okay, fandt ud af den nu... skulle bare lige tænke mig om... altså det du skrev om arne. Mit problem er bare, at jeg jo skal have det stående i en DD MM YYYY datoformat, så hvordan satan gør jeg det? :|
Den der antal dage? Den skal jo være der, så jeg kan hive en dag frem. Og jeg kan ikke skrive + 2003 bagefter, jeg skal jo kunne hive et nyt tal frem, hvis variablen ændrer sig.
Du misforstår mig måske. Min kode er som sådan okay, men jeg skal ud fra min kode samle det hele i en streng, hvilket jeg ikke kan med k.skudaar(2003), da den simpelthen nægter det!
Problemet er at du både vil bruge skudaar() til at check om et år er et skudår, som f.eks:
if((mon == 2) && skudaar(aar)) res++;
Samtidig med at du vil have den til at retunere en tekst. Hvis du ikke vil rette for meget i din kode kan du løse det ved at lave en ekstra metode. Så du har følgende:
class Opgave2 . . . //En public void, som ser om int aar er et skudaar public boolean skudaar(int aar) { if( aar % 400 == 0 ) { // System.out.println(aar + " - det er skudaar!"); return true; } else if( aar % 100 == 0 ) { // System.out.println(aar + " - det er ikke skudaar!"); return false; } else if( aar % 4 == 0 ) { // System.out.println(aar + " - det er skudaar!"); return true; } else { // System.out.println(aar + " - det er ikke skudaar!"); return false; } }
public String skudaar2(int aar) { if (skudaar(aar)) return aar + " - det er skudaar!"; else return aar + " - det er ikke skudaar!"; }
public class Opgave2kontrol { public static void main(String args[]) { Opgave2 k = new Opgave2(); System.out.println("Vi er i aar "+ k.skudaar2(2003)); System.out.println("Vi er i maaned " + k.maaned(8)); System.out.println("Maaned " + k.maaned(8) + " indeholder " + k.dpm(8, 2003) + " dage"); System.out.println("Idag er det den " + k.dage(10) + ". dag i maaned " + k.maaned(8)); String DDMMYYYY = k.dage(10) + "/" + k.maaned(8) + "/" + k.skudaar2(2003); System.out.println(DDMMYYYY); } }
Dette giver følgende resultat når du kører dit program:
Vi er i aar 2003 - det er ikke skudaar! Vi er i maaned 08 Maaned 08 indeholder 31 dage Idag er det den 10. dag i maaned 08 10/08/2003 - det er ikke skudaar! Process Exit...
Takker mange gange, fandt faktisk ud af det før, men derfor skal du stadig have dine point! :)
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.