java中实现对时间的操作

版权声明:原创文章,未经许可不能转载 https://blog.csdn.net/qq_38499625/article/details/79613698

所属类别:类的成员变量与方法、构造方法

题目:

 在程序中经常要对时间进行操作但是并没有时间类型的数据。 那么我们可以自己实现一个时间类来满足程序中的需要。
 定义名为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();
	}
}



猜你喜欢

转载自blog.csdn.net/qq_38499625/article/details/79613698