1   /**
2    * Metodi vastaan aliohjelma
3    * @author  Vesa Lappalainen
4    * @version 1.0, 01.02.2003
5    */
6   public class Aika5 {
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 Aika5() { // 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 Aika5(int h) {
28      aseta(h,0);
29    }
30  
31    /**
32     * Alustaa ajan
33     * @param h tunnit
34     * @param m minuutit
35     */
36    public Aika5(int h,int m) { // Muodostaja
37      aseta(h,m);
38    }
39  
40    /**
41     * Tulostaa ajan muodossa 15:05
42     * @param lf tulostetaanko rivinvaihto vai ei
43     */
44    public void tulosta(boolean lf) {
45      System.out.print("" + h + ":" + (m<10?"0":"")+m);
46      if ( lf ) System.out.println();
47    }
48  
49    /**
50     * Tulostaa ajan muodossa 15:05 sekä aina rivinvaihdon
51     */
52    public void tulosta() {
53      tulosta(true);
54    }
55  
56    /**
57     * Lisää aikaan valitun minuuttimäärän
58     * @param lisa_min lisättävä minuuttimäärä
59     */
60    public void lisaa(int lisa_min)  {
61      int yht_min = h * 60 + m + lisa_min;
62      h = yht_min / 60;
63      m = yht_min % 60;
64    }
65  
66    public static void lisaa(Aika5 aika,int lisa_min) {
67      int yht_min = aika.h * 60 + aika.m + lisa_min;
68      aika.h = yht_min / 60;
69      aika.m = yht_min % 60;
70    }
71  
72  
73    public static void main(String[] args) {
74      Aika5 a1 = new Aika5();
75      Aika5 a2 = new Aika5(13);
76      Aika5 a3 = new Aika5(14,25);
77  
78      a1.tulosta();  a2.tulosta();  a3.tulosta();
79      a1.aseta(12,15); a2.aseta(16,-15);
80      a1.tulosta(); a2.tulosta();
81  
82      lisaa(a1,55); a1.tulosta();
83    }
84  
85  }
86  
87