Løsningsforslag - oppgaver i Vedlegg F.1


Oppgave 1

///////// enum Ukedag //////////

public enum Ukedag
{
  MAN  ("Mandag",1),
  TIRS ("Tirsdag",2),
  ONS  ("Onsdag",3),
  TORS ("Torsdag",4),
  FRE  ("Fredag",5),
  LØR  ("Lørdag",6),
  SØN  ("Søndag",7);

  private final String navn;  // instansvariabel
  private final int dagnr;    // instansvariabel

  private Ukedag(String navn,int dagnr)  // den nye konstruktøren
  {
    this.navn = navn;
    this.dagnr = dagnr;
  }

  public int dagnr()
  {
    return dagnr;
  }

  @Override
  public String toString()
  {
    return navn;
  }

  public boolean erHelligdag()
  {
    return dagnr == 7;
  }

  public boolean erArbeidsdag()
  {
    return dagnr <= 5;
  }

  public boolean erFridag()
  {
    return dagnr == 6 || dagnr == 7;
  }
  public boolean erHverdag()
  {
    return dagnr <= 6;
  }

  public static Ukedag[] arbeidsdager()  // mandag til fredag
  {
    return new Ukedag[] { MAN, TIRS, ONS, TORS, FRE };
  }

  public static Ukedag[] fridager()      // lørdag og søndag
  {
    return new Ukedag[] { LØR, SØN };
  }

  public static Ukedag[] hverdager()     // mandag til lørdag
  {
    return new Ukedag[] { MAN, TIRS, ONS, TORS, FRE, LØR };
  }

  public static Ukedag helligdag()       // søndag
  {
    return SØN;
  }

} // Ukedag

Oppgave 2

///////// enum Måned ///////////////////

public enum Måned
{
  JAN ("Januar", 1), FEB ("Februar", 2), MAR ("Mars", 3),
  APR ("April", 4), MAI ("Mai", 5), JUN ("Juni", 6),
  JUL ("Juli", 7), AUG ("August", 8), SEP ("September", 9),
  OKT ("Oktober", 10), NOV ("November", 11), DES ("Desember", 12);

  private final String navn;    // instansvariabel
  private final int månedsnr;    // instansvariabel

  private Måned(String navn, int månedsnr)  // konstruktør
  {
    this.navn = navn;
    this.månedsnr = månedsnr;
  }

  public int månednr() { return månedsnr; }

  public boolean erVårmåned()
  {
    int mndnr = månedsnr;
    return mndnr == 4 || mndnr == 5;
  }

  public boolean erSommermåned()
  {
    int mndnr = månedsnr;
    return mndnr >= 6 && mndnr <= 8;
  }

  public boolean erHøstmåned()
  {
    int mndnr = månedsnr;
    return mndnr == 9 || mndnr == 10;
  }

  public boolean erVintermåned()
  {
    int mndnr = månedsnr;
    return mndnr >= 11 || mndnr <= 3;
  }

  @Override public String toString() { return navn; }

  public static Måned[] sommer()  // juni, juli, august
  {
    return new Måned[] { JUN, JUL, AUG };
  }

  public static Måned[] vinter()  // november, desember, januar, februar, mars
  {
    return new Måned[] { NOV, DES, JAN, FEB, MAR };
  }

  public static Måned[] vår()  // april, mai
  {
    return new Måned[] { APR, MAI };
  }

  public static Måned[] høst()  // september, oktober
  {
    return new Måned[] { SEP, OKT };
  }

} // enum Måned