Nehmen Sie die Klasse Date aus den letzten Übungsblättern und ergänzen Sie diese um folgende Methoden:
- Date nextDay()
Es soll der nächste Kalendertag erzeugt werden.
- String monthAsHTML()
Es soll für den Monat in Form einer HTML Tabelle eine wochenweise Anzeige erzeugt, genau wie im folgenden Beispiel für November 2013:
<table>
<tr><th>Mo</th><th>Di</th><th>Mi</th><th>Do</th><th>Fr</th><th>Sb</th><th>So</th></tr>
<tr><td></td><td></td><td></td><td></td><td>1</td><td>2</td><td>3</td></tr>
<tr><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr>
<tr><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td></tr>
<tr><td>18</td><td>19</td><td>20</td><td>21</td><td>22</td><td>23</td><td>24</td></tr>
<tr><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr>
</table>
So sieht der Monat dann auf einer HTML-Seite wie folgt aus:
Mo |
Di |
Mi |
Do |
Fr |
Sb |
So |
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
Sie benötigen für die Lösung natürlich noch einmal Ihre Implementierung der Wochentagsberechnung.
class Date{
int day;
int month;
int year;
Date(int day, int month, int year){
assert month>0;
assert month<13;
assert day>0;
assert day<32;
this.day = day;
this.month = month;
this.year = year;
}
Date nextDay(){
//hier den nächsten berechnen
//Achtung: this soll nicht modifiziert werden,
//es soll also keinen Seiteneffekt haben.
}
String monthAsHTML(){
// hier den HTML String berechnen
}
}