java - 为什么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>
解决方案
如果小时为 12,则它不会出现在任何 if 语句中。所以控制权转移到其他地方。用 >= 代替 >。改变
else if(h_today > 12 && h_today < 17)
到
else if(h_today >= 12 && h_today < 17)
对其他人也是如此。
推荐阅读
- machine-learning - 如何使用具有 dkb 值的集群算法?
- java - 如何从 MacOS 中删除 Java Web Start
- xmlhttprequest - 在 VB 代码中通过 ADODB 流下载文件时出错
- pytest - 如何从另一个夹具参数化夹具?
- azure - 更新 Azure API 管理 ip-filter 策略详细信息
- python - 合并和拆分来自 TF-agents 的时间和动作步骤
- android - 从我的 android 工作室签署的 apk/bundle 花费了太多时间
- tmap - 我正在使用 tmap 库来绘制矢量数据集。我无法以度数添加纬度和经度
- r - 字体不是粗体
- java - Java MessageFormat 和 LocalDate