1
7 public class AikaF implements AikaRajapinta {
8
9 private int h, m;
10
11
16 public void aseta(int h,int m) {
17 this.h = h; this.m = m; lisaa(0);
18 }
19
20 public AikaF() { this.h = 0; this.m = 0; }
21
22
26 public AikaF(int h) {
27 aseta(h,0);
28 }
29
30
35 public AikaF(int h,int m) { aseta(h,m);
37 }
38
39
43 public void tulosta(boolean lf) {
44 System.out.print(toString());
45 if ( lf ) System.out.println();
46 }
47
48
51 public void tulosta() {
52 tulosta(true);
53 }
54
55
59 public void lisaa(int lisa_min) {
60 int yht_min = h * 60 + m + lisa_min;
61 h = yht_min / 60;
62 m = yht_min % 60;
63 }
64
65 public static void lisaa(AikaF aika,int lisa_min) {
66 int yht_min = aika.h * 60 + aika.m + lisa_min;
67 aika.h = yht_min / 60;
68 aika.m = yht_min % 60;
69 }
70
71 public int getH() { return h; }
72 public int getM() { return m; }
73
74 public String toString() {
75 return "" + h + ":" + (m<10?"0":"")+m;
76 }
77
78 public boolean equals(Object o) {
79 if ( !(o instanceof AikaRajapinta) ) return false;
80 AikaRajapinta a = (AikaRajapinta)o;
81 return getH() == a.getH() && getM() == a.getM();
82 }
83
84 public Object clone() {
85 return new AikaF(getH(),getM());
86 }
87
88 public int hashCode() {
89 return 3600*getH() + 60*getM();
90 }
91
92 public static void main(String[] args) {
93 AikaF a1 = new AikaF();
94 AikaF a2 = new AikaF(13);
95 AikaF a3 = new AikaF(14,25);
96
97 a1.tulosta(); a2.tulosta(); a3.tulosta();
98 a1.aseta(12,15); a2.aseta(16,-15);
99 a1.tulosta(); a2.tulosta();
100
101 lisaa(a1,55); a1.tulosta();
102
103 System.out.println("Tunnit = " + a1.getH());
104 System.out.println(a1.toString());
105 }
106
107 }
108
109