几行代码判断当前时间是否是今天的下午,好像和预想的不一样
图片描述
输出一直是false,比较郁闷,我就在刚才下午测试的
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
图片描述
输出一直是false,比较郁闷,我就在刚才下午测试的
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
取模运算的优先级等于乘法运算,从左到右结合。
你的代码等价于
long today = curTime - (curTime % 24) * 60 * 60 * 1000;
改一下括号就好了:
long today = curTime - curTime % (24 * 60 * 60 * 1000);
首先是括号的问题,下面这行要加括号,不加的话运算符优先级会导致数据错误。
你的运算逻辑
可以化简为:
最后代码相当于:
其次这种实现方式忽略了一点:
也就是说这么算出来的结果应该去比较
currentMillis % (24 * 60 * 60 * 1000L) > 4 * 60 * 60 * 1000L
最后这种实现方式太繁琐,不如直接用
Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 12
方便时间格式有问题。