Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package praktikum7;
- import java.time.LocalDate;
- import java.time.Period;
- import java.util.Arrays;
- class DatumException extends Exception {
- String output;
- DatumException(String meldung) {
- output = meldung;
- }
- public String toString() {
- return ("DatumException aufgetreten: " + output);
- }
- }
- public class Patient {
- Person person;
- LocalDate aufnahmeAm;
- LocalDate entlassenAm;
- Messung[] messungen;
- public Patient(Person p, LocalDate aufnahmeAm) {
- this.person = p;
- this.aufnahmeAm = aufnahmeAm;
- this.entlassenAm = aufnahmeAm.plusDays(PersonUtils.TAGE_MAX);
- this.messungen = new Messung [PersonUtils.TAGE_MAX];
- }
- public Patient(Person p, LocalDate aufnahmeAm, LocalDate entlassenAm) {
- this.person = p;
- this.aufnahmeAm = aufnahmeAm;
- this.entlassenAm = entlassenAm;
- this.messungen = new Messung [PersonUtils.TAGE_MAX];
- if (Period.between(aufnahmeAm, entlassenAm).getDays() > 20){
- System.out.println("Die Differenz der beiden Daten übersteigt die maximale Aufenthaltsdauer.");
- }
- }
- void setMessung(Messung m) {
- messungen[Period.between(aufnahmeAm, m.getDatum()).getDays()] = m;
- }
- Messung getMessung(LocalDate d) throws DatumException {
- if (d.isBefore(aufnahmeAm) || d.isAfter(aufnahmeAm.plusDays(PersonUtils.TAGE_MAX))) {
- throw new DatumException("Das angeforderte Datum ist nach dem Tag der Entlassung.");
- }
- return messungen[Period.between(aufnahmeAm, entlassenAm).getDays()];
- }
- public String toString() {
- int groesse = 0;
- for (int i=0; i < messungen.length; i++) {
- if (messungen[i] != null) {
- groesse++;
- }
- }
- Messung[] ausgabe = new Messung[groesse];
- int stelle = 0;
- for (int i = 0; i < messungen.length; i++) {
- if (messungen[i] != null) {
- ausgabe[stelle] = messungen[i];
- stelle++;
- }
- }
- return "Patient " + Person.toString(person) + "\naufnahmeAm : " + aufnahmeAm + ", entlassenAm : " + entlassenAm + "\nMessungen: " + Arrays.toString(ausgabe) + " ] ";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement