Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.05 KB | None | 0 0
  1. package praktikum7;
  2.  
  3. import java.time.LocalDate;
  4. import java.time.Period;
  5. import java.util.Arrays;
  6.  
  7. class DatumException extends Exception {
  8.  
  9.     String output;
  10.  
  11.     DatumException(String meldung) {
  12.  
  13.         output = meldung;
  14.     }
  15.  
  16.     public String toString() {
  17.  
  18.         return ("DatumException aufgetreten: " + output);
  19.  
  20.     }
  21.  
  22. }
  23.  
  24. public class Patient {
  25.  
  26.     Person person;
  27.  
  28.     LocalDate aufnahmeAm;
  29.  
  30.     LocalDate entlassenAm;
  31.  
  32.     Messung[] messungen;
  33.  
  34.     public Patient(Person p, LocalDate aufnahmeAm) {
  35.  
  36.         this.person = p;
  37.  
  38.         this.aufnahmeAm = aufnahmeAm;
  39.  
  40.         this.entlassenAm = aufnahmeAm.plusDays(PersonUtils.TAGE_MAX);
  41.        
  42.         this.messungen = new Messung [PersonUtils.TAGE_MAX];
  43.     }
  44.  
  45.     public Patient(Person p, LocalDate aufnahmeAm, LocalDate entlassenAm)  {
  46.  
  47.         this.person = p;
  48.  
  49.         this.aufnahmeAm = aufnahmeAm;
  50.  
  51.         this.entlassenAm = entlassenAm;
  52.        
  53.         this.messungen = new Messung [PersonUtils.TAGE_MAX];
  54.        
  55.         if (Period.between(aufnahmeAm, entlassenAm).getDays() > 20){
  56.             System.out.println("Die Differenz der beiden Daten übersteigt die maximale Aufenthaltsdauer.");
  57.         }
  58.     }
  59.  
  60.     void setMessung(Messung m) {
  61.        
  62.         messungen[Period.between(aufnahmeAm, m.getDatum()).getDays()] = m;
  63.        
  64.     }
  65.  
  66.     Messung getMessung(LocalDate d) throws DatumException {
  67.  
  68.         if (d.isBefore(aufnahmeAm) || d.isAfter(aufnahmeAm.plusDays(PersonUtils.TAGE_MAX))) {
  69.  
  70.             throw new DatumException("Das angeforderte Datum ist nach dem Tag der Entlassung.");
  71.         }
  72.  
  73.         return messungen[Period.between(aufnahmeAm, entlassenAm).getDays()];
  74.     }
  75.  
  76.    
  77.     public String toString() {
  78.        
  79.         int groesse = 0;
  80.         for (int i=0; i < messungen.length; i++) {
  81.             if (messungen[i] != null) {
  82.                 groesse++;
  83.             }
  84.         }
  85.        
  86.         Messung[] ausgabe = new Messung[groesse];
  87.        
  88.         int stelle = 0;
  89.         for (int i = 0; i < messungen.length; i++) {
  90.             if (messungen[i] != null) {
  91.                 ausgabe[stelle] = messungen[i];
  92.                 stelle++;
  93.             }
  94.         }
  95.        
  96.         return "Patient " + Person.toString(person) + "\naufnahmeAm : " + aufnahmeAm + ", entlassenAm : " + entlassenAm + "\nMessungen: " + Arrays.toString(ausgabe) + " ] ";
  97.     }
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement