http://www.jkozak.pl/przedmioty/java/zadania7.pdf
Tutaj ostatni przykład to treść zdania.
Ten z czasem.
Pobieranie liczby godzin i minut z ciągu znaków, też nie jest idealne, ale improwizowałem
public class Czas {
private int godz;
private int minuty;
public Czas(int godz, int minuty){
this.godz=godz;this.minuty=minuty;
if(this.minuty>=60){
this.godz+=(this.minuty/60);
this.minuty=this.minuty%60;
}
}
public Czas(String ciag){
String tab[]=ciag.split("h");
StringBuilder sb1=new StringBuilder();
StringBuilder sb2=new StringBuilder();
if(tab[0].length()==3){
sb1.append(tab[0].charAt(0)); sb1.append(tab[0].charAt(1));
this.godz=Integer.valueOf(sb1.toString());
}
else if(tab[0].length()==2){
sb1.append(tab[0].charAt(0));
this.godz=Integer.valueOf(sb1.toString());
}
if(tab[1].length()==7){
sb2.append(tab[1].charAt(1)); sb2.append(tab[1].charAt(2));
this.minuty=Integer.valueOf(sb1.toString());
}
else if(tab[1].length()==6){
sb2.append(tab[1].charAt(1));
this.minuty=Integer.valueOf(sb1.toString());
}
if(this.minuty>=60){
this.godz+=(this.minuty/60);
this.minuty=this.minuty%60;
}
}
public String toString(){
return godz+" h "+minuty+" min";
}
public Czas dodaj(Czas t){
int godziny=this.godz;
int minuty=this.minuty;
godziny+=t.godz;
minuty+=t.minuty;
if(minuty>=60){
godziny+=(minuty/60);
minuty=minuty%60;
}
return new Czas(godziny, minuty);
}
public Czas odejmij(Czas t){
int godziny=this.godz;
int minuty=this.minuty;
godziny-=t.godz;
minuty-=t.minuty;
if(minuty<0){
int ile=minuty/60;
godziny+=ile;
minuty=60+(minuty%60);
}
return new Czas(godziny, minuty);
}
public Czas pomnoz(int ile){
int godziny=this.godz;
int minuty=this.minuty;
godziny*=3;
minuty*=3;
if(minuty>=60){
godziny+=(minuty/60);
minuty=minuty%60;
}
return new Czas(godziny, minuty);
}
public static Czas sumuj(Czas[] tab, int n){
Czas d=new Czas(0,0);
for(int i=0; i<n; i++){
d.dodaj(tab[i]);
}
return d;
}
public static void main(String[] args){
Czas t1=new Czas(10, 56);
Czas t2=new Czas(0, 123);
System.out.println("t1 = " + t1);
System.out.println("t2 = " + t2);
System.out.println("t1 + t2 = " + t1.dodaj(t2));
System.out.println("t1 - t2 = " + t1.odejmij(t2));
Czas [] tab = { t1, t2, t2 };
System.out.println("Czas.sumuj dla t1 + t2 + t2 = " +Czas.sumuj(tab, 3));
System.out.println("t1 * 2 = " + t1.pomnoz(2));
Czas t3=new Czas("3 h 17 min");
System.out.println("Konstruktor złańcuchem: " + t3);
}
}
Log z konsoli:
t1 = 10 h 56 min
t2 = 2 h 3 min
t1 + t2 = 12 h 59 min
t1 - t2 = 8 h 53 min
Czas.sumuj dla t1 + t2 + t2 = 0 h 0 min
t1 * 2 = 32 h 48 min
Konstruktor złańcuchem: 3 h 3 min