首页 > 解决方案 > 为什么Java中出现错误的问候

问题描述

我想制作一个根据一天中的时间问候你的程序。我住在印度,所以我使用的 zoneid 是Asia/Kolkata这里的时区是 IST(GMT+5:30)。当我写这个问题时,这里的时间是 12:49 PM。仍然打印输出晚安 idk 代码有什么问题。代码是 ==

LocalDateTime today = LocalDateTime.now(ZoneId.of("Asia/Kolkata"));
int h_today = today.getHour();
if(h_today > 0 && h_today < 12)
     { 
     System.out.println("Good morning ma'am! \n"); 
     }
     else if(h_today > 12 && h_today < 17)
     { 
     System.out.println("Good afternoon ma'am! \n"); 
     }
     else if( h_today >17 && h_today < 23 )
     {
     System.out.println("Good evening ma'am! \n"); 
     }
     else 
     {
      System.out.println("Good night ma'am! \n"); 
     }

我使用 LocalDateTime 而不是 LocalTime 因为我还需要做更多的操作,我认为这不应该影响输出。我认为问题在于我给出的条件。请帮帮我☆</p>

标签: java

解决方案


如果小时为 12,则它不会出现在任何 if 语句中。所以控制权转移到其他地方。用 >= 代替 >。改变

else if(h_today > 12 && h_today < 17)

else if(h_today >= 12 && h_today < 17)

对其他人也是如此。


推荐阅读