1. #1
    Ensign
    Dabei seit
    Mai 2004
    Beiträge
    129

    Ein Studi auf Abwegen, Java Frage, eigentlich einfach

    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^^?

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Lt. Junior Grade
    Dabei seit
    Jul 2006
    Ort
    zuhause
    Beiträge
    454

    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.
    Trau keiner Statistik, die du nicht selber gefälscht hast

    Meine Webseite

  4. #3
    Ensign
    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 )

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •