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);
}
}
