Java 我的if语句暂时不起作用-收到错误消息

Java 我的if语句暂时不起作用-收到错误消息,java,if-statement,simpledateformat,Java,If Statement,Simpledateformat,我尝试使用if语句根据当前时间向用户显示问候消息。我已经设置了当前时间,但是我无法将其用于if语句 public class MyFrame extends JFrame { public MyFrame() { super("Greeting"); setbounds(200, 200, 200, 150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Calendar

我尝试使用if语句根据当前时间向用户显示问候消息。我已经设置了当前时间,但是我无法将其用于if语句

public class MyFrame extends JFrame {
    public MyFrame() {
        super("Greeting");
        setbounds(200, 200, 200, 150);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("hh");
        JTextArea tx = new JTextArea(10,5);
        String myTime = sdf.format(cal.getTime());
        if (myTime < 12am && myTime > 12pm)
            tx.append("Good Morning");
        }
        if (myTime <12am && myTime > 12pm)
            tx.append("Good Afternoon");
        }
        JPanel pane = new JPanel();
        pane.add(tx);
        add(pane);
        setVisible(true);
    }
    public static void main(String [] args) {
        new MyFrame();
    }
}
公共类MyFrame扩展了JFrame{
公共MyFrame(){
超级(“问候”);
立根(200200200150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Calendar cal=Calendar.getInstance();
SimpleDataFormat sdf=新的SimpleDataFormat(“hh”);
JTextArea tx=新的JTextArea(10,5);
字符串myTime=sdf.format(cal.getTime());
如果(我的时间<上午12点&我的时间>下午12点)
德克萨斯州(“早上好”);
}
如果(我的时间下午12点)
德克萨斯州(“下午好”);
}
JPanel窗格=新的JPanel();
窗格。添加(tx);
添加(窗格);
setVisible(真);
}
公共静态void main(字符串[]args){
新MyFrame();
}
}

这句话不对

  if (myTime < 12am && myTime > 12pm)
if(myTime<12am&&myTime>12pm)

您无法比较那样的字符串,您可以以24小时格式获取时间,然后将其解析为整数以进行比较。

关于您的警卫,请尝试:

if (myTime < twelveAM)
    myGreeting = "Good Morning"
} else {
    myGreeting = "Good Afternoon"
}

tx.append(myGreeting);
if(myTime
如果myTime小于twelveAM所引用的值,则会附加“早上好”。如果myTime不小于twelveAM引用的值,则流程将通过警卫并附加“午安”


特别注意类型转换,在你的守卫中进行比较之前必须做的事情,如下面的注释中所述。

你得到的错误消息是什么?
12am
12pm
都不是有效的java标识符。
myTime<12am&&myTime>12pm
?这么多语法错误,我甚至无法预测表达式的类型
12am
to be?首先,
if(myTime<12am)
这是一个有效的语句吗?
myTime
是一个字符串,Java不允许
12am
作为一个标识符,他特别询问了他的
if逻辑。我回答了这个具体问题。OP需要自己解决变量命名和/或类型转换问题,他的IDE现在应该已经告诉他了。但是作为奖励,我现在也为OP修改了变量命名。当然我可以为他编写整个代码,但是我也想要他的薪水。