时分秒计算案例

在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。
为MyTime类定义构造方法,以方便创建对象时初始化成员变量。
再定义diaplay方法,用于将时间信息打印出来。

为MyTime类添加以下方法:
addSecond(int sec)
addMinute(int min)
addHour(int hou)
subSecond(int sec)
subMinute(int min)
subHour(int hou)
分别对时、分、秒进行加减运算。

/*
 * 3、【练习题】类的成员变量与方法、构造方法
在程序中,经常要对时间进行操作,但是并没有时间类型的数据。那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为MyTime的类,其中应有三个整型成员:
时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。
为MyTime类定义构造方法,以方便创建对象时初始化成员变量。
再定义diaplay方法,用于将时间信息打印出来。

为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 {
	//属性
	private int hour;
	private int minute;
	private int second;
	//存放相加减后的结果
	int seconds;
	int minutes;
	int hours;
	//存放自定义的时间
	int hou=5;
	int min=12;
	int sec=32;
	
	//构造方法实现初始化
	public MyTime(int hou,int min,int sec){
		this.hour=hou;
		this.minute=min;
		this.second=sec;
	}
	//实现对小时的加法运算
		public void addHour(int hou){
			//实现两个小时数相加
			 hours=this.hour+hou;
			//如果和大于24,则求余
			if(hours>24){
				hours%=24;
			}
		}
		//实现对小时的减法运算
		public void subHour(int hou){
			hours=this.hour-hou;
			if(hours>0){
				//如果向减的小时数为正
				hours=this.hour-hou;
			}else{
				//如果相减的小时数为负
				int befhour=this.hour-hou;
				hours=24-(-befhour);
			}
		}
		//实现对分钟的加法运算
		public void addMinute(int min){
			//分钟数相加
			minutes=this.minute+min;
			//如果分钟数之和,大于60,则求余
			if(minutes>60){
				minutes%=60;
			}
		}
		//实现对分钟的减法运算
		public void subMinute(int min){
			//如果分钟数之差大于0
			minutes=this.minute-min;
			if(minutes>0){
				minutes=this.minute-min;
			}else{
				//如果分钟数之差小于0
				//向小时位借1,则为60分钟
				int befmin=this.minute-min;
				minutes=60-(-befmin);
				//被减数的小时数减1
				this.hour--;
			}
		}
		//实现对秒数的加法运算
		public void addSecond(int sec){
			//秒数相加
			seconds=this.second+sec;
			//如果秒数之和大于60,则求余
			if(seconds>60){
				seconds%=60;
			}
			
		}
		//实现对秒数的减法运算
		public void subSecond(int sec){
			//如果秒数之差大于0
			seconds=this.second-sec;
			if(seconds>0){
				seconds=this.second-sec;
			}else{
				//如果秒数之差小于0
				//向分钟位借1,则为60秒
				int befsec=this.second-sec;
				seconds=60-(-befsec);
				//被减数的分钟数减1
				this.minute--;
			}
		}
		//打印出时间信息
		public void display(){
			System.out.println("自定义时间为:");
			System.out.println(hou+"	"+min+"	"+sec);
			System.out.println();
			
			System.out.println("相减/加后的结果为");
			System.out.println(hours+"	"+minutes+"	"+seconds);
		}
}

  

import java.util.Scanner;
public class Test3 {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		int temp=-1;
		//初始化时,分,秒
		MyTime mt=new MyTime(5, 12, 32);
		
		System.out.println("请输入小时数");
		int Hour=input.nextInt();
		System.out.println("请选择进行加法还是减法(+  0)(-  1),输入0或1:");
		temp=input.nextInt();
		if(temp==0){
			//选择加法
			mt.addHour(Hour);
		}else{
			//选择减法
			mt.subHour(Hour);
		}
				
		System.out.println("请输入分钟数");
		int Minute=input.nextInt();
		System.out.println("请选择进行加法还是减法(+  0)(-  1),输入0或1:");
		temp=input.nextInt();
		if(temp==0){
			mt.addMinute(Minute);
		}else{
			mt.subMinute(Minute);
		}
		
		System.out.println("请输入秒数");
		int Second=input.nextInt();
		System.out.println("请选择进行加法还是减法(+  0)(-  1),输入0或1:");
		temp=input.nextInt();
		if(temp==0){
			mt.addSecond(Second);
		}else{
			mt.subSecond(Second);
		}
		mt.display();
		
	}

	

}

  

时间最会骗人,但也能让你明白,这个世界上没有什么是不能失去的,留下的尽力珍惜,得不到的都不重要
原文地址:https://www.cnblogs.com/www-x/p/8025342.html