public class Time
{
private int _h;
private int _m;
private int _s;
public Time (Time t){ //Copy-Konstruktor
_h = t.getH();
_m = t.getM();
_s = t.getS();
}
public Time(int h, int m, int s){ //Konstruktor, wo std usw uebergeben werden
_h = h;
_m = m;
_s = s;
}
public Time(){ //Konstruktor, wo alle Werte 0 gesetzt werden.
_h = 0;
_m = 0;
_s = 0;
}
public int getH(){
return _h ;
}
public int getM(){
return _m ;
}
public int getS(){
return _s ;
}
public void setH(int h){
if (_h >=0 && _h<=23)
{_h = h%3600 ;}
else {
System.out.println("Bitte Minutenwert zwischen 0 und 23 angeben!");
}
}
public void setM(int m){
if (_m >=0 && _m<=59)
{_m = m %60 ;}
else {
System.out.println("Bitte Minutenwert zwischen 0 und 59 angeben!");
}
}
public void setS(int s){
if (_s >=0 && _s<=59)
{_s = s %60 ;}
else {
System.out.println("Bitte Minutenwert zwischen 0 und 59 angeben!");
}
}
public void uhrzeitAusgeben(){
if (_h<=10)
System.out.print("0");
System.out.print(getH());
System.out.print(":");
if (_m<=10)
System.out.print("0");
System.out.print(getM());
System.out.print(":");
if (_s<=10)
System.out.print("0");
System.out.println(getS());
}
public Time getSumme(Time t){ //Addiert einfach Uhrzeit + Uhrzeit!)
int sec = getH()*3600 + getM()*60 +getS() + t.getH()*3600 + t.getM()*60 + t.getS();
int p1 = sec/3600 %3600;
int p2 = (sec -(p1*3600))/60 %60;
int p3 = sec - ((p1*3600)+(p2*60));
return new Time(p1,p2,p3);
}
public void addTime(Time t){
setH(this.getH() + t.getH());
setM(this.getM() + t.getM());
setS(this.getS() + t.getS());
}
public String toString()
{
return String.format ("<%1$02d:%2$02d:%3$02d>", this.getH (),
this.getM (), this.getS ());
}
}
------------------------------------------------------------------
public class Uebung1Treiber
{
public static void main(String[] args)
{
Time t1 = new Time();
Time t2 = new Time(4,44,46);
Time t3 = new Time(t2);
Time t4 = new Time(14,18,16);
t1.uhrzeitAusgeben(); // trotzdem tolle methoden^^ :P, obwohl man sich die ja auch mal ganz sparen koennte...
t2.uhrzeitAusgeben();
t3.uhrzeitAusgeben();
t4.uhrzeitAusgeben();
System.out.println(t1);
System.out.println(t2);
System.out.println(t3);
System.out.println(t4);
t2.getSumme(t4); //zwei Uhrzeiten werden aufeinander addiert!
System.out.println(t2.getSumme(t4));
t1.addTime(t3); // Uhrzeit t4 wird zu t1 addiert!
System.out.println(t1);
t1.addTime(t4); // Uhrzeit t4 wird nochmals zu t1 addiert!
System.out.println(t1);
}
}
---------------------------------------
sooo nun meine frage!!!
wenn ich 2 Zeiten addiere, z.b. 13:46:15 und 12:15:56 müsste ja 16:02:11 rauskommen^^...
aber es kommt raus 15:01:11 , verdammte AA ^^ ich kriegs einfach net raus(
jmd grad nen gedankenblitz^^?
-
06.04.2007, 17:16 #1Ensign
- Dabei seit
- Mai 2004
- Beiträge
- 129
Ein Studi auf Abwegen, Java Frage, eigentlich einfach
- Anzeige
Logge dich ein, um diese Anzeige nicht zu sehen. -
06.04.2007, 20:44 #2
AW: Ein Studi auf abwägen, Java Frage, eigentlich einfach^^
Die Methode getSumme() rechnet genau richtig.
Wenn ich 13:46:15 + 12:15:56 angebe, kommt bei mir 26:02:11 raus.
Du kannst in getSumme() übrigens auf die Modulo-Berechnung verzichten.
-
06.04.2007, 20:55 #3Ensign
Ersteller dieses Themas
- Dabei seit
- Mai 2004
- Beiträge
- 129
AW: Ein Studi auf abwägen, Java Frage, eigentlich einfach^^
jo, hab die methodennamen einfach geändert^^ :P aber trotzdem wolte unser prof sdas so ham, dass die eine das genau umrechnet und dann genau diese zeit als neue zeit betrachtet... die andere soll nur addiern oder so hmz^^ egal
) vielen dank nochmal für dein testen
)

(
Zitieren