Java 将24小时制转换为12小时制

Java 将24小时制转换为12小时制,java,displaytag,Java,Displaytag,好的,我有一个时钟类,最初设置为24小时时钟,但我必须使用这个方法将时钟显示为12小时时钟!我已经试了好几个小时了,但没有成功!请帮忙。使时钟显示为12小时时钟(hh:mm:ss AM/PM)。使用抽象-除了updateDisplay()方法外,不要更改任何内容。该钟可在“封底”下使用军用时间;它只需要在调用getTime()时返回正确的字符串 private void updateDisplay() { String AM = "AM"; String PM = "PM";

好的,我有一个时钟类,最初设置为24小时时钟,但我必须使用这个方法将时钟显示为12小时时钟!我已经试了好几个小时了,但没有成功!请帮忙。使时钟显示为12小时时钟(hh:mm:ss AM/PM)。使用抽象-除了updateDisplay()方法外,不要更改任何内容。该钟可在“封底”下使用军用时间;它只需要在调用getTime()时返回正确的字符串

private void updateDisplay()
{
    String AM = "AM";
    String PM = "PM";

    if(hours.getValue() == 0) {
        hours.setValue(hours.getValue() + 12);
        PM = "";
    }
    else if(hours.getValue() == 1 < hours.getValue() && hours.getValue() < 11) {
        PM = "";
    }
    else if(hours.getValue() == 12) {
       AM = "";
    }
    else if(hours.getValue() == 13 > 24) {
        hours.setValue(hours.getValue() - 12);
       AM = "";
    }

    displayString = hours.getDisplayValue() + ":" + 
    minutes.getDisplayValue() + ":" +
    seconds.getDisplayValue() + PM + AM;
}
private void updateDisplay()
{
字符串AM=“AM”;
字符串PM=“PM”;
if(hours.getValue()==0){
hours.setValue(hours.getValue()+12);
PM=“”;
}
else if(hours.getValue()==124){
hours.setValue(hours.getValue()-12);
AM=“”;
}
displayString=hours.getDisplayValue()+“:”+
分钟数。getDisplayValue()+“:”+
秒。getDisplayValue()+PM+AM;
}

尝试将24小时时间转换为秒,那么应该很容易…

尝试将24小时时间转换为秒,那么应该很容易…

一个24小时时钟,H,从0运行一个24小时时钟,H,从0运行一个很好的简明公式是添加11,然后取“模12”,然后再添加一个:

hours.setValue(((hours.getValue()+11)%12)+1);
i、 e

这可以为任何值(包括小时=0、小时=12等)提供所需的结果


(然后当然可以使用前面提到的AM/PM显示的任何解决方案)

一个很好的简明公式是加11,然后取“模12”,然后再加一个:

hours.setValue(((hours.getValue()+11)%12)+1);
i、 e

这可以为任何值(包括小时=0、小时=12等)提供所需的结果


(当然,在AM/PM显示器上使用前面提到的任何解决方案)

。。。。我所需要做的就是编写一个24小时时钟,H,从0开始运行感谢我让它工作,我了解它的大部分内容,但是你能解释一下(hours.getValue()/12==0?“AM”:“PM”)是做什么的吗?非常感谢。它被称为三元运算符,基本上只是一个压缩的if/else语句。您可以将其理解为“如果小时点获取值除以12等于0,则返回am,否则返回PM”。无论返回哪一个,都将分配给Meridiance。另外,我很高兴它对你有用,你介意接受我的回答吗?谢谢,所以。。。。我所需要做的就是编写一个24小时时钟,H,从0开始运行感谢我让它工作,我了解它的大部分内容,但是你能解释一下(hours.getValue()/12==0?“AM”:“PM”)是做什么的吗?非常感谢。它被称为三元运算符,基本上只是一个压缩的if/else语句。您可以将其理解为“如果小时点获取值除以12等于0,则返回am,否则返回PM”。无论返回哪一个,都将分配给Meridiance。另外,我很高兴它对你有用,你介意接受我的回答吗?谢谢
hours.setValue(((hours.getValue()+11)%12)+1);
h_12 = ( (h_24+11) % 12 ) + 1