我有一个Jasper Reports要求来计算日期字段的小时部分在18:00到06:00之间的记录数。我创建了一个带有以下结构的求和变量:
new Integer( ( ((new org.joda.time.DateTime($F{CCDateDis}).getHourOfDay()) > 18) &&
((new org.joda.time.DateTime($F{CCDateDis}).getHourOfDay()) < 6)
) ? 1 : 0)
其中$ F {CCDateDis}是Date()对象。
变量sum总是返回&#39; 0&#39;即使我知道有记录属于这个范围。我在这里找不到什么东西吗?
答案 0 :(得分:2)
反转比较。
你的逻辑基本上是:
x > 18 && x < 6
这在数学上总是假的 - 没有数字大于18 且小于6。
将逻辑更改为:
x <= 18 && x >= 6