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