Skip to contentMethod: getWochentag()
      1: package planung;
2: 
3: import zeit.eintraege.UhrzeitZeitraum;
4: 
5: import java.time.DayOfWeek;
6: 
7: /**
8:  * Eine Schichtzeit umfasst einen Wochentag und einen Zeitraum.
9:  * <p>
10:  * So kann beispielsweise <b>Montag von 06:00 Uhr bis 14:00 Uhr</b> eine Schichtzeit sein. Sie definiert auf diese Weise, zu welchen Zeiten im Betrieb Schichten
11:  * vorliegen, nach welchen dann geplant werden kann.
12:  * <p>
13:  * Ein Beispiel für einen Schichtplan könnte folgendermaßen aussehen:
14:  *
15:  * <table>
16:  * <tr>
17:  * <td>Montag</td>
18:  * <td>06:00 - 14:00</td>
19:  * </tr>
20:  * <tr>
21:  * <td>Montag</td>
22:  * <td>14:00 - 22:00</td>
23:  * </tr>
24:  * <tr>
25:  * <td>Dienstag</td>
26:  * <td>06:00 - 14:00</td>
27:  * </tr>
28:  * <tr>
29:  * <td>Dienstag</td>
30:  * <td>14:00 - 22:00</td>
31:  * </tr>
32:  * <tr>
33:  * <td>Mittwoch</td>
34:  * <td>06:00 - 14:00</td>
35:  * </tr>
36:  * <tr>
37:  * <td>Mittwoch</td>
38:  * <td>14:00 - 22:00</td>
39:  * </tr>
40:  * <tr>
41:  * <td>Donnerstag</td>
42:  * <td>06:00 - 14:00</td>
43:  * </tr>
44:  * <tr>
45:  * <td>Donnerstag</td>
46:  * <td>14:00 - 22:00</td>
47:  * </tr>
48:  * <tr>
49:  * <td>Freitag</td>
50:  * <td>06:00 - 14:00</td>
51:  * </tr>
52:  * <tr>
53:  * <td>Freitag</td>
54:  * <td>14:00 - 22:00</td>
55:  * </tr>
56:  * </table>
57:  * Diese Tabelle entspräche einer {@link SchichtZeit} je Zeile und hätte somit 10 Schichtzeiten.
58:  */
59: public final class SchichtZeit {
60:         private final DayOfWeek wochentag;
61:         private final UhrzeitZeitraum uhrzeitRaum;
62: 
63:         private SchichtZeit(final DayOfWeek wochentag, final UhrzeitZeitraum uhrzeitRaum) {
64:                 this.wochentag = wochentag;
65:                 this.uhrzeitRaum = uhrzeitRaum;
66:         }
67: 
68:         /**
69:          * @param wochentag
70:          *                 Wochentag, welcher die Schicht besitzt.
71:          * @param uhrzeitraum
72:          *                 Zeitraum in den die Schicht an jedem dieser Tage fällt.
73:          *
74:          * @return erstellt eine {@link SchichtZeit} basierend auf einem {@link DayOfWeek} und einem {@link UhrzeitZeitraum}
75:          * <p>
76:          * Beispielsweise <b>Montags von 06:00 bis 14:00 Uhr</b>
77:          */
78:         public static SchichtZeit create(final DayOfWeek wochentag, final UhrzeitZeitraum uhrzeitraum) {
79:                 return new SchichtZeit(wochentag, uhrzeitraum);
80:         }
81: 
82:         /**
83:          * @return liefert einen Wochentag der Schicht zurück
84:          */
85:         public DayOfWeek getWochentag() {
86:                 return this.wochentag;
87:         }
88: 
89:         /**
90:          * @return liefert den UhrzeitZeitraum der Schicht zurück
91:          */
92:         public UhrzeitZeitraum getUhrzeitRaum() {
93:                 return this.uhrzeitRaum;
94:         }
95: 
96:         @Override
97:         public String toString() {
98:                 return "SchichtZeit{" + "wochentag=" + this.wochentag + ", uhrzeitRaum=" + this.uhrzeitRaum + '}';
99:         }
100: }