1   /**
2    * Sisäinen tilanvalvonta aikaan.
3    * @author  Vesa Lappalainen
4    * @version 1.0, 01.02.2003
5    */
6   public class Aika4 {
7   
8     private int h=0, m=0;
9   
10    /**
11     * Asettaa uuden ajan ja pitää huolen että aika on aina oikeaa muotoa.
12     * @param h asetettavat tunnit
13     * @param m asetettavat minuutit
14     */
15    public void aseta(int h,int m) {
16      this.h = h; this.m = m; lisaa(0);
17    }
18  
19    public Aika4() { // Oletusmuodostaja
20      aseta(0,0);
21    }
22  
23    /**
24     * Asettaa uuden ajan ja pitää huolen että aika on aina oikeaa muotoa.
25     * @param h asetettavat tunnit
26     */
27    public Aika4(int h) {
28      aseta(h,0);
29    }
30  
31    /**
32     * Alustaa ajan
33     * @param h tunnit
34     * @param m minuutit
35     */
36    public Aika4(int h,int m) { // Muodostaja
37      aseta(h,m);
38    }
39  
40    /**
41     * Tulostaa ajan muodossa 15:05
42     */
43    public void tulosta() {
44      System.out.println("" + h + ":" + (m<10?"0":"")+m);
45    }
46  
47    /**
48     * Lisää aikaan valitun minuuttimäärän
49     * @param lisa_min lisättävä minuuttimäärä
50     */
51    public void lisaa(int lisa_min)  {
52      int yht_min = h * 60 + m + lisa_min;
53      h = yht_min / 60;
54      m = yht_min % 60;
55    }
56  
57    public static void main(String[] args) {
58      Aika4 a1 = new Aika4();
59      Aika4 a2 = new Aika4(13);
60      Aika4 a3 = new Aika4(14,25);
61  
62      a1.tulosta();  a2.tulosta();  a3.tulosta();
63      a1.aseta(12,15); a2.aseta(16,-15);
64      a1.tulosta(); a2.tulosta();
65    }
66  
67  }
68  
69