// Beispiel Klasse fuer FluSuServlet // WWW & Servlets // Fachgruppe Softwaretechnik // Uwe Poborski 14.04.99 // ZeitAngabe.java // benoetigte Klassen: import java.io.*; class ZeitAngabe implements Serializable { private int Tage, Stunden, Minuten; private char[] FormZeit = new char[8]; private void form() { char[] Zeichen = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', ':'}; FormZeit[0] = Zeichen[Stunden/10]; FormZeit[1] = Zeichen[Stunden % 10]; FormZeit[2] = Zeichen[11]; FormZeit[3] = Zeichen[Minuten/10]; FormZeit[4] = Zeichen[Minuten % 10]; if (Tage > 0 && Tage < 10) { FormZeit[5] = '+'; FormZeit[6] = Zeichen[Tage]; FormZeit[7] = 'd'; } else { if (Tage < 0 && Tage > -10) { FormZeit[5] = '-'; FormZeit[6] = Zeichen[-Tage]; FormZeit[7] = 'd'; } else { FormZeit[5] = ' '; FormZeit[6] = ' '; FormZeit[7] = ' '; } } } public ZeitAngabe() { this(0, 0); } public ZeitAngabe(ZeitAngabe ZA) { this(0, 0); if (ZA != null) { Tage = ZA.gibTage(); Stunden = ZA.gibStunden(); Minuten = ZA.gibMinuten(); } form(); } public ZeitAngabe(int M) { this(0, M); } public ZeitAngabe(int S, int M) { Tage = 0; if (S < 0) S *= -1; if (M < 0) M *= -1; Minuten = M; Stunden = S; while (Minuten > 59) { M -= 60; Stunden++; } while (Stunden > 23) { Stunden -= 24; Tage++; } form(); } public void addieren(ZeitAngabe ZA) { Stunden += ZA.gibStunden(); Minuten += ZA.gibMinuten(); if (Minuten > 59 ) { Stunden++; Minuten -= 60; } if (Stunden > 23 ) { Tage++; Stunden -= 24; } form(); } public void subtrahieren(ZeitAngabe ZA) { if (ZA.gibStunden() < 0) return; Minuten -= ZA.gibMinuten(); if (Minuten < 0) { Stunden--; Minuten += 60; } Stunden -= ZA.gibStunden(); if (Stunden < 0) { Stunden += 24; Tage--; } form(); } public boolean istFrueherals(ZeitAngabe ZA) { if (ZA.gibTage() < Tage) { return false; } else if (ZA.gibinMinuten() < this.gibinMinuten()) { return false; } else { return true; } } public boolean istSpaeterals(ZeitAngabe ZA) { return (!istFrueherals(ZA)); } public int gibTage(){return Tage;} public int gibStunden(){return Stunden;} public int gibMinuten(){return Minuten;} public int gibinMinuten() { if (Tage > 0) return (Tage * 24 * 60 + Stunden * 60 + Minuten); else return (Stunden * 60 + Minuten); } public String gibFormZeit() { String Form = new String(); for (int i = 0; i < 8; i++) Form += FormZeit[i]; return Form; } }; // class zeitangabe