Avatar billede tjmm Nybegynder
05. marts 2007 - 18:52 Der er 1 kommentar og
1 løsning

Kalender og liste?

Hey-- Vi er ved at lave en kalender i Java i et projekt vi har fået et mindre problem..

Vi har 3 klasser...

Kalender
Dage
Aftaler

Det forholder sig således vi skal have kalender til at fremkalde alle dage og dagene skal hente alle de aftaler der nu måtte være sat på den gælende dag..

Vi mener der for vi skal gemme aftaler og dage i en liste og derved henter Dagene til Kalenderne. og så Dagene henter aftalerne

Men vi ved ikke hvordan man henter en liste?

Jeg kan lige give jer det kode vi har fra Dage og aftale

dage:::::::

import java.util.*;

public class Dag
{
  private int dag,    // 1 <= dag  <= dageIMaaned
              maaned, // 1 <= maaned <= 12
              aar;
               
  private List<Dag> dage;
             
  public Dag(int d, int m, int y) {
      dag= d; maaned= m; aar= y;
     
      dage= new ArrayList<Dag>();
    }

  public String getDato() {
        String dagPrefix, maanedPrefix;
       
        if ( dag < 10 ) dagPrefix = "0";
        else dagPrefix = "";
       
        if ( maaned < 10 ) maanedPrefix = "0";
        else maanedPrefix = "";
       
        return dagPrefix + dag + "-" + maanedPrefix + maaned + "-" + aar;
    }
   
   
    public void addDage(int d) {
        for ( int i=0; i<d; i++ ) {
            setToNextDato();
        }
    }
   
    public void setToNextDato() {
        dag= dag + 1;
        checkDagOverflow();
    }
 
    private void checkDagOverflow() {
        if ( dag > dageIMaaned() ) {
            dag = 1;
            maaned = maaned + 1;
            checkMaanedOverflow();
        }
    }
   
    private void checkMaanedOverflow() {
        if ( maaned > 12 ) {
            maaned = 1;
            aar = aar + 1;
        }
    }
    /**
    * Does a divide b?
    * @return whether a divides b
    */
    private boolean divides(int a, int b) {
        return b % a  ==  0;
    }
   
    /**
    * Is this year a leap year?
    * @return whether this year is a leap year
    */
    private boolean erSkudaar() {
        /* leap year rule:
          a year is a leap year if 4 divides the year
          exception: years that divides by 100 are NOT leap years
                      UNLESS the year divides by 400
        */
        return (divides(4, aar) && !divides(100, aar)) || divides(400, aar);
    }
   
    /**
    * How many days are there in this month?
    * @return the number of days in this month
    */
    private int dageIMaaned() {
        //        maaned:      1  2  3  4  5  6  7  8  9 10 11 12
        int[] dageIMaaned = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        int res;

        res = dageIMaaned[maaned];
        // special case: february in a leap year
        if ( maaned == 2 && erSkudaar() ) {
            res++;
        }
        return res;
    }



Aftale::::::::

import java.util.*;
/**
* Write a description of class Aftaler here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class Aftale
{
    private String tekst;      //aftalen
    private String dato;        //dato for aftalen
    private String starttid;    //aftalens begyndelsestidspunkt
    private String sluttid;    //aftalens sluttidspunkt
    private String emne;        //beskrivelse af hvad der skal foregå
    private String sted;        //hvor foregår aftalen
   
   
    private List<Aftale> aftaler;
   
        public Aftale(String t, String d, String start, String slut, String e, String s)
        {
        tekst= t;
        dato= d;
        starttid= start;
        sluttid= slut;
        emne= e;
        sted= s;
       
        aftaler= new ArrayList<Aftale>();
        }

        public void visAftale() {
       
            System.out.println("Aftale: " + tekst);
            System.out.println("Dato: " + dato);
            System.out.println("Fra: " + starttid + " Til: " + sluttid);
            System.out.println("Emne: " + emne);
            System.out.println("Sted: " + sted);
       
        }
       
     
       
       
       
}
Avatar billede jime_boy Nybegynder
18. marts 2007 - 10:01 #1
I klassen dag kan i lave en liste af aftaler.
---------------------------------------------------------------------------------
ArrayList aftaler = new ArrayList();

---------------------------------------------------------------------------------

Bagefter kan i lave en metode til at lægge data i den liste
---------------------------------------------------------------------------------
opret aftale(String t, String d, String start, String slut, String e, String s)
{
aftale.add(aftale1 = new Aftale(t,d,start,slut,e,s));
)

---------------------------------------------------------------------------------
Det sidste i så skal gøre er at hente listen frem igen. Der skal i i klassen Aftale enten lave retur metoder til hver enkelt variabel eller i skal gøre variablerne public. Alt efter hvordan i gør det kan i hente dem frem i listen fra dag.
---------------------------------------------------------------------------------
Aftale hentAftale =(Aftale) Aftaler.get(?)        //?=den plads i mener den ligger på

hentAftale.visAftale();

----------------------------------------------------------------------------------
Den bid kode jeg har lavet kan i lægge i en passende metode i klassen dag.


Håber det kunne hjælpe jer
Avatar billede tjmm Nybegynder
11. juli 2008 - 11:59 #2
lukker vi lavede noget andet:P
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