java中實現對時間的操作
阿新 • • 發佈:2018-11-07
所屬類別:類的成員變數與方法、構造方法
題目:
定義名為MyTime的類其中應有三個整型成員時hour分minute秒second為了保證資料的安全性這三個成員變數應宣告為私有。
為MyTime類定義構造方法以方便建立物件時初始化成員變數。 再定義display方法用於將時間資訊打印出來。
為MyTime類新增以下方法
addSecond(int sec)
addMinute(int min)
addHour(int hou) subSecond(int sec) subMinute(int min) subHour(int hou)
實現程式碼如下:
import java.util.Scanner; public class MyTime { int hour; int minute; int second; //建立無參建構函式,初始化時間 public MyTime() { this.hour = 12; this.minute = 45; this.second = 20; } //建立帶一個引數的建構函式,對時進行操作 public MyTime(int hour) { super(); this.hour = hour; } //構造帶有兩個引數的建構函式,對時和分進行操作 public MyTime(int hour, int minute) { super(); this.hour = hour; this.minute = minute; } //構造帶有三個引數的建構函式 public MyTime(int hour, int minute, int second) { super(); this.hour = hour; this.minute = minute; this.second = second; } //輸出時間格式 public void display() { System.out.println("time is:" + hour + ":" + minute + ":" + second); } //加秒演算法 public void addSecond(int sec) { second = second + sec; if (second > 60) { minute = minute + second / 60; second = second % 60; } } //加分演算法 public void addMinute(int min) { minute += min; if (minute > 60) { hour += minute / 60; minute = minute % 60; } } //加時演算法 public void addHour(int hou) { hour += hou; if (hour > 24) { hour = hour % 24; } } //減秒演算法 public void subSecond(int sec) { second -= sec; if (second < 0) { if (Math.abs(second) > 60) { minute += (Math.abs(second)) / 60; } else { minute--; } } second = Math.abs(second); } //減分演算法 public void subMinute(int min) { minute -= min; if (minute < 0) { if (Math.abs(minute) > 60) { hour += (Math.abs(minute)) / 60; } else { hour--; } minute = Math.abs(minute); } } //減時演算法 public void subHour(int hou) { hour -= hou; if (hour < 0) { hour += 24; } } public static void main(String[] args) { Scanner sc=new Scanner(System.in); MyTime mt = new MyTime(); mt.display(); //可手動輸入 mt.addSecond(45); mt.addMinute(20); mt.addHour(13); mt.subSecond(50); mt.subMinute(60); mt.subHour(13); mt.display(); //如下可以自定義輸入,由鍵盤錄入值 mt.addSecond(sc.nextInt()); mt.addMinute(sc.nextInt()); mt.addHour(sc.nextInt()); mt.subSecond(sc.nextInt()); mt.subMinute(sc.nextInt()); mt.addHour(sc.nextInt()); mt.display(); } }