dm6801

171127 - Class 09 - Clock

Nov 29th, 2017
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.49 KB | None | 0 0
  1. package Class;
  2.  
  3. public class Clock {
  4.    
  5.    
  6.     /* properties */
  7.     public static final int MAX_HOUR = 24;
  8.     public static final int MAX_MINUTE = 60;
  9.    
  10.     protected static boolean format = false;
  11.    
  12.     protected int hour;
  13.     protected int minute;
  14.    
  15.    
  16.     /* get, set methods */
  17.     public static void setFormat(boolean bool_format) {
  18.         format = bool_format;
  19.     }
  20.     public static void setFormat(int format) {
  21.         if (format == 12) { setFormat(false); }
  22.         else if (format == 24) { setFormat(true); }
  23.     }
  24.     public static boolean getFormat() {
  25.         return format;
  26.     }
  27.    
  28.    
  29.     public void setHour(int hour) {
  30.         if (hour < 0) { hour = 0; }
  31.         this.hour = hour%MAX_HOUR;
  32.     }
  33.     public int getHour() {
  34.         return hour;
  35.     }
  36.    
  37.     public void setMinute(int minute) {
  38.         if (minute < 0) { minute = 0; }
  39.         this.minute = minute%MAX_MINUTE;
  40.     }
  41.     public int getMinute() {
  42.         return minute;
  43.     }
  44.    
  45.    
  46.     /* constructors */
  47.     public Clock(int hour, int minute) {
  48.         setHour(hour);
  49.         setMinute(minute);
  50.     }
  51.     public Clock() {
  52.         this(0, 0);
  53.     }
  54.     /* copy constructor */
  55.     public Clock(Clock clockObj) {
  56.         hour = clockObj.hour;
  57.         minute = clockObj.minute;
  58.     }
  59.    
  60.    
  61.    
  62.     /* methods */
  63.     public String toString() { //setting AM/PM styling
  64.         String flag = " (" + ((hour < (MAX_HOUR/2))?"AM":"PM") + ')';
  65.        
  66.         //returning the styled string
  67.         return String.format("(%s@%h) %02d:%02d%s",
  68.                             this.getClass().getName(),
  69.                             this,
  70.                             (format) ? hour : (  hour % (MAX_HOUR/2)  ),
  71.                             minute,
  72.                             (format)?"":flag);
  73.     }
  74. }
Add Comment
Please, Sign In to add comment