如何计算范围内小时的记录

时间:2014-06-22 05:02:37

标签: java jasper-reports jodatime

我有一个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;即使我知道有记录属于这个范围。我在这里找不到什么东西吗?

1 个答案:

答案 0 :(得分:2)

反转比较。

你的逻辑基本上是:

x > 18 && x < 6

这在数学上总是假的 - 没有数字大于18 小于6。

将逻辑更改为:

x <= 18 && x >= 6