MyTime类表示时间(小时+分钟)JAVA

【问题描述】

MyTime类可以表示时间(小时+分钟),具有两个整数属性和一个字符串属性:

小时值

分钟值

错误消息提示

并具有一个构造方法(与类同名的方法)和三个普通方法:

构造方法:接收两个整数作为参数,并进行合理性判断(小时值应在0-23之间,分钟值 应在0-59之间),如合理则分别用于设定小时值 和分钟值,如不合理,则输出错误提示信息,并将小时值 和分钟值均设为0。

setTime()方法,接收两个整数作为参数,并进行合理性判断(小时值应在0-23之间,分钟值 应在0-59之间),如合理则分别用于设定小时值 和分钟值,如不合理,则输出错误提示信息,并保持原值 不变

showTime()方法,输出时间信息,格式形如“Time is 23:18”

getTime12()方法,输出12小时制的时间信息,格式形如“Time in 12—10:35 am”或“Time in 12—10:35 pm”

要求编程实现MyTime类,使给定的Test类能正常运行,并实现指定的输出内容。

public class Test{

       static public void main(String args[]){

              MyTime mt = new MyTime(25,43);

              mt.showTime();

 

              mt = new MyTime(10,35);

              mt.showTime();

              System.out.println("Time in 12---"+mt.getTime12());
			//mt.getTime12()不能如上直接输出
			//会出现“ 错误: 此处不允许使用 '空' 类型”
			//修改为mt.getTime12(),接着在mt.getTime12()中输出
      		//如果一个函数返回值类型为void,则不能再调用函数的同时直接打印

              mt.setTime(25,16);

              mt.showTime();

 

              mt.setTime(23,18);

              mt.showTime();

 

              System.out.println("Time in 12---"+mt.getTime12());

       }

}

【输入形式】
【输出形式】

invalid time value! Time is 0:0

Time is 10:35

Time in 12---10:35 am

invalid time value! Time is 10:35

Time is 23:18

Time in 12---11:18 pm

正确代码

import java.util.*;
 
 public class testb{
    static public void main(String args[]){
		
        MyTime mt = new MyTime(25,43);
        mt.showTime();
		
        mt = new MyTime(10,35);
        mt.showTime();
       // System.out.println("Time in 12---a"); 
		mt.getTime12();
		
		//mt = new MyTime(25,16);
        mt.setTime(25,16);
        mt.showTime();
		
		//mt = new MyTime(23,18);
        mt.setTime(23,18);
        mt.showTime();
        //System.out.println("Time in 12---b");
		mt.getTime12();
       }
	   
	
}
 
class MyTime{
	
	private int hour;
	private int mint;
	//private String day="am";
	private String warning="invalid time value! ";
	
	public MyTime(int hour,int mint){
		this.hour=hour;
		this.mint=mint;
		
		if(hour<0||hour>23){
			System.out.print("8"+warning);
			hour=0;
			mint=0;
			System.out.println("Time3 is "+hour+":"+mint);
		}
		else if(mint<0||mint>59){
			System.out.print("7"+warning);
			hour=0;
			mint=0;
			System.out.println("Time4 is "+hour+":"+mint);
		}
	}
	
	public void getTime12(){
		String day="am";
		if(hour>12){
			day="pm";
			hour=hour-12;
			System.out.println("Time in 12---a"+hour+":"+mint+" "+day);
			//return hour;
			//return mint;
			//return day;
		}
		else{
			System.out.println("Time in 12---a"+hour+":"+mint+" "+day);
			//return hour;
			//return mint;
			//return day;
		}
		//System.out.println("Time is "+hour+":"+mint);
	}
	public void showTime(){
		//System.out.print("Time1 is "+hour+":"+mint);
		
		if(hour>=0&&hour<=23){
			
				//System.out.println(warning);
			//	hour=0;
			//	mint=0;
				System.out.println("Time1 is "+hour+":"+mint);
			
		}
		/*else{
			System.out.print("Time2 is "+hour+":"+mint);
		}*/
		
		//注释部分为断点输出检查代码错误
	}
	
	
	
	public void setTime(int hour,int mint){
		
		if(hour<0||hour>23){
			System.out.print(warning);
			
		}
		else if(mint<0||mint>59){
			System.out.print(warning);
			
		}
		else{
			this.hour=hour;
			this.mint=mint;
		}
		//其他普通(void)方法中也可以使用构造方法,为参数赋值
		
	}
	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个叶绿体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值