在Java中创建时间类
所以我的任务是创建一个Time类,它包含一个小时值和一个分钟值来表示时间。我将使用“军事时间”,所以上午12:01是0001,下午1:00是1300。我可以假设有效的军事时间在0000到2359之间。有效标准时间范围为上午12:00至晚上11:59。时间应包括两个构造器: Time()-将时间设置为1200的默认构造函数。 时间(inth,intm)-如果h介于1和23之间(含1和23),则将小时设置为h。否则,将小时设置为0。如果m介于0和59之间(含0和59),请将分钟数设置为m。否则,将分钟数设置为0。 时间应包括以下方法: String toString()-以长度为4的字符串形式返回时间,格式为:0819。注意,如果小时或分钟是一位数字,它应该先打印一个零。例如,6应打印为06 String convert()-以从军用时间转换为标准时间的字符串形式返回时间。例如,0545变为上午5:45,1306变为下午1:06 void increment()-将时间提前一分钟。记住60分钟等于1小时。因此,如果你的时间是0359,加上一分钟,它就变成0400。2359应该增加到0000 这是我写的(除了main方法): 我当前的输出是:在Java中创建时间类,java,time,Java,Time,所以我的任务是创建一个Time类,它包含一个小时值和一个分钟值来表示时间。我将使用“军事时间”,所以上午12:01是0001,下午1:00是1300。我可以假设有效的军事时间在0000到2359之间。有效标准时间范围为上午12:00至晚上11:59。时间应包括两个构造器: Time()-将时间设置为1200的默认构造函数。 时间(inth,intm)-如果h介于1和23之间(含1和23),则将小时设置为h。否则,将小时设置为0。如果m介于0和59之间(含0和59),请将分钟数设置为m。否则,将分
time1: 0000
convert time1 to standard time: 0am
time1: 0000
increment time1 five times: 0005
time2: 0000
increment time2 67 times: 0107
convert to time2 standard time: 8am
time2: 0107
time3: 0000
convert time3: 0am
time4: 0000
convert time4: 0am
time5: 0000
convert time5: 0am
time6: 0000
convert time6: 0am
time7: 0000
convert time7: 0am
increment time7: 0001
convert time7: 1am
我的编译器告诉我到处都有问题,我不知道在哪里。如果有人能帮我看一下,找出问题所在,那将非常有帮助。谢谢大家! 构造函数的问题是,您没有将值赋给类变量,而是赋给方法变量,这就是代码的样子
public Time(int h, int m)
{
if ( h >= 1 && h <= 23)
h = hour;
else
hour = 0;
if ( m >= 0 && m <= 59)
m = minute;
else
minute = 0;
}
公共时间(整数小时,整数米)
{
如果(h>=1&&h=0&&m=1&&h=0&&m构造函数出现问题,则您没有将值赋给类变量,而是赋给方法变量,这就是代码的外观
public Time(int h, int m)
{
if ( h >= 1 && h <= 23)
h = hour;
else
hour = 0;
if ( m >= 0 && m <= 59)
m = minute;
else
minute = 0;
}
公共时间(整数小时,整数米)
{
如果(h>=1&&h=0&&m=1&&h=0&&m构造函数出现问题,则您没有将值赋给类变量,而是赋给方法变量,这就是代码的外观
public Time(int h, int m)
{
if ( h >= 1 && h <= 23)
h = hour;
else
hour = 0;
if ( m >= 0 && m <= 59)
m = minute;
else
minute = 0;
}
公共时间(整数小时,整数米)
{
如果(h>=1&&h=0&&m=1&&h=0&&m构造函数出现问题,则您没有将值赋给类变量,而是赋给方法变量,这就是代码的外观
public Time(int h, int m)
{
if ( h >= 1 && h <= 23)
h = hour;
else
hour = 0;
if ( m >= 0 && m <= 59)
m = minute;
else
minute = 0;
}
公共时间(整数小时,整数米)
{
如果(h>=1&&h=0&&m=1&&h=0&&m,则构造函数赋值将如前面的回答中所述反转
另外,在toString
方法中,在您要执行的位置添加一个ultimateelse
子句
s=hour+minute
;构造函数赋值与前面的答案中所述相反
另外,在toString
方法中,在您要执行的位置添加一个ultimateelse
子句
s=hour+minute
;构造函数赋值与前面的答案中所述相反
另外,在toString
方法中,在您要执行的位置添加一个ultimateelse
子句
s=hour+minute
;构造函数赋值与前面的答案中所述相反
另外,在toString
方法中,在您要执行的位置添加一个ultimateelse
子句
s=hour+minute
;您的问题在构造函数、toString()和convert()方法中
相应的代码更改如下:
public MultiLevel(int h, int m)
{
if ( h >= 1 && h <= 23)
hour = h;
else
hour = 0;
if ( m >= 0 && m <= 59)
minute = m;
else
minute = 0;
}
public String toString()
{
String s = "";
if ( hour < 10 && minute < 10)
s = "0" + hour + "0" + minute;
else if ( hour < 10 && minute > 10)
s = "0" + hour + minute;
else if ( hour > 10 && minute < 10)
s = hour + "0" + minute;
else if ( hour > 10 && minute > 10)
s = hour +""+ minute;
else if ( hour == 0)
s = "0" + hour + minute;
else if ( minute == 0)
s = hour + "0" + minute;
return s;
}
public String convert()
{
String c = "";
if ( hour > 12)
{
if(hour >10){
if((hour - 12) == 12)
c = (hour - 12) +":"+ minute + "am";
else
c = (hour - 12) +":"+ minute + "pm";
}
else
{
c = "0" + (hour - 12) +":"+ minute + "pm";
}
}
else
c = hour +":"+ minute + "am";
if(minute == 0)
{
c= c.substring(0, c.length()-2)+"0"+c.substring(c.length()-2, c.length());
}
return c;
}
公共多级(inth,intm)
{
如果(h>=1&&h=0&&m 10)
s=“0”+小时+分钟;
否则,如果(小时>10分钟<10分钟)
s=小时+0“+分钟;
否则,如果(小时>10分钟和分钟>10分钟)
s=小时+分钟;
否则,如果(小时==0)
s=“0”+小时+分钟;
否则如果(分钟==0)
s=小时+0“+分钟;
返回s;
}
公共字符串转换()
{
字符串c=“”;
如果(小时>12)
{
如果(小时>10){
如果((小时-12)=12)
c=(小时-12)+“:”+分钟+“上午”;
其他的
c=(小时-12)+“:”+分钟+“下午”;
}
其他的
{
c=“0”+(小时-12+):“+分钟+”下午;
}
}
其他的
c=小时+“:”+分钟+“上午”;
如果(分钟==0)
{
c=c.substring(0,c.length()-2)+“0”+c.substring(c.length()-2,c.length());
}
返回c;
}
您的问题在构造函数、toString()和convert()方法中
相应的代码更改如下:
public MultiLevel(int h, int m)
{
if ( h >= 1 && h <= 23)
hour = h;
else
hour = 0;
if ( m >= 0 && m <= 59)
minute = m;
else
minute = 0;
}
public String toString()
{
String s = "";
if ( hour < 10 && minute < 10)
s = "0" + hour + "0" + minute;
else if ( hour < 10 && minute > 10)
s = "0" + hour + minute;
else if ( hour > 10 && minute < 10)
s = hour + "0" + minute;
else if ( hour > 10 && minute > 10)
s = hour +""+ minute;
else if ( hour == 0)
s = "0" + hour + minute;
else if ( minute == 0)
s = hour + "0" + minute;
return s;
}
public String convert()
{
String c = "";
if ( hour > 12)
{
if(hour >10){
if((hour - 12) == 12)
c = (hour - 12) +":"+ minute + "am";
else
c = (hour - 12) +":"+ minute + "pm";
}
else
{
c = "0" + (hour - 12) +":"+ minute + "pm";
}
}
else
c = hour +":"+ minute + "am";
if(minute == 0)
{
c= c.substring(0, c.length()-2)+"0"+c.substring(c.length()-2, c.length());
}
return c;
}
公共多级(inth,intm)
{
如果(h>=1&&h=0&&m 10)
s=“0”+小时+分钟;
否则,如果(小时>10分钟<10分钟)
s=小时+0“+分钟;
否则,如果(小时>10分钟和分钟>10分钟)
s=小时+分钟;
否则,如果(小时==0)
s=“0”+小时+分钟;
否则如果(分钟==0)
s=小时+0“+分钟;
返回s;
}
公共字符串转换()
{
字符串c=“”;
如果(小时>12)
{
如果(小时>10){
如果((小时-12)=12)
c=(小时-12)+“:”+分钟+“上午”;
其他的
c=(小时-12)+“:”+分钟+“下午”;
}
其他的
{
c=“0”+(小时-12+):“+分钟+”下午;
}
}
其他的
c=小时+“:”+分钟+“上午”;
如果(分钟==0)
{
c=c.substring(0,c.length()-2)+“0”+c.substring(c.length()-2,c.length());
}
返回c;
}
您的问题在构造函数、toString()和convert()方法中
相应的代码更改如下:
public MultiLevel(int h, int m)
{
if ( h >= 1 && h <= 23)
hour = h;
else
hour = 0;
if ( m >= 0 && m <= 59)
minute = m;
else
minute = 0;
}
public String toString()
{
String s = "";
if ( hour < 10 && minute < 10)
s = "0" + hour + "0" + minute;
else if ( hour < 10 && minute > 10)
s = "0" + hour + minute;
else if ( hour > 10 && minute < 10)
s = hour + "0" + minute;
else if ( hour > 10 && minute > 10)
s = hour +""+ minute;
else if ( hour == 0)
s = "0" + hour + minute;
else if ( minute == 0)
s = hour + "0" + minute;
return s;
}
public String convert()
{
String c = "";
if ( hour > 12)
{
if(hour >10){
if((hour - 12) == 12)
c = (hour - 12) +":"+ minute + "am";
else
c = (hour - 12) +":"+ minute + "pm";
}
else
{
c = "0" + (hour - 12) +":"+ minute + "pm";
}
}
else
c = hour +":"+ minute + "am";
if(minute == 0)
{
c= c.substring(0, c.length()-2)+"0"+c.substring(c.length()-2, c.length());
}
return c;
}
公共多级(inth,intm)
{
如果(h>=1&&h=0&&m 10)
s=“0”+小时+分钟;
否则,如果(小时>10分钟<10分钟)
s=小时+0“+分钟;
否则,如果(小时>10分钟和分钟>10分钟)
s=小时+分钟;
埃尔斯
import com.vinay.timeclass.exceptions.InvalidTimeException;
/**
* @author Dell
*
*/
public class Time {
private int hour;
private int minute;
public Time() {
hour = 0;
minute =0;
}
public Time(int hour, int minute) throws InvalidTimeException {
if(hour > 24 || minute > 60)
throw new InvalidTimeException(" Hour cannot be greater than 24 and minute cannot be greater than 24 ");
if(hour >=1 && hour<=23)
this.hour = hour;
else
this.hour = 0;
if (minute >=0 && minute <=59) {
this.minute = minute;
} else {
minute = 0;
}
}
@Override
public String toString() {
StringBuilder timeBuilder = new StringBuilder();
if(hour < 10 && minute < 10) {
timeBuilder.append("0").append(hour).append(":").append("0").append(minute);
}
else if (hour < 10 && minute > 10) {
timeBuilder.append("0").append(hour).append(":").append(minute);
}
else if (hour > 10 && minute < 10) {
timeBuilder.append(hour).append(":").append("0").append(minute);
}else if(hour > 10 && minute > 10) {
timeBuilder.append(hour).append(":").append(minute);
}else if(hour == 0) {
if(minute < 10)
timeBuilder.append("0").append(hour).append(":0").append(minute);
else
timeBuilder.append(hour).append(":").append(minute);
}else if (minute == 0) {
if(minute < 10)
timeBuilder.append("0").append(hour).append(":0").append(minute);
else
timeBuilder.append(hour).append(":0").append(minute);
}
return timeBuilder.toString();
}
public int getHour() {
return hour;
}
public void setHour(int hour) throws InvalidTimeException{
if(hour>24)
throw new InvalidTimeException("Hour cannot be greater than 24");
this.hour = hour;
}
public int getMinute() {
return minute;
}
public void setMinute(int minute) throws InvalidTimeException{
if(minute>60)
throw new InvalidTimeException("Minute cannot be greater than 60");
this.minute = minute;
}
public String convert(){
StringBuilder timeBuilder = new StringBuilder();
if(hour > 11) {
if(hour == 12) {
timeBuilder.append(hour).append(":").append(minute).append(" PM");
}else if(hour > 12) {
timeBuilder.append(hour-12).append(":").append(minute).append(" PM");
}
}else if(hour == 0) {
timeBuilder.append(hour+12).append(":").append(minute).append(" AM");
}else {
timeBuilder.append(hour).append(":").append(minute).append(" AM");
}
String timeString = timeBuilder.toString();
if(minute < 10) {
timeString = timeString.substring(0, timeString.length()-4)+"0"+minute+" "+timeString.substring(timeString.length()-2, timeString.length());
}
return timeString;
}
public void increment() {
if(hour== 23 && minute == 59) {
hour = 0;
minute = 0;
}else {
minute ++;
if(minute == 60) {
hour++;
minute = 0;
if(hour == 24) {
hour =0;
}
}
else if(hour == 24) {
hour = 0;
}
}
}
}