2011-05-23 51 views
0

我正在研究groovy和grails中的小型活动日历,我只想显示今天的活动。在期间/时间X和时间Y中查找对象Y

def getEventsToday(List events) { 
List eventsToday; 
Date todayEvening = dateDefault(null, null, null, 23, 59, 59); 
Date todayMorning = dateDefault(null, null, null, 0, 0, 0); 
eventsToday = events.ByStartTimeBetween(todayEvening, todayMorning); 
return eventsToday; 
} 

我得到以下异常:

groovy.lang.MissingMethodException: No signature of method: EventController.dateDefault() is applicable for argument types: (null, null, null, java.lang.Integer, java.lang.Integer, java.lang.Integer) values: [null, null, null, 23, 59, 59] 

我认为dateDefault()方法是失踪,但我不知道在至极类我能找到这个方法。 也许有人知道我的用例/问题可能的解决方案?

/编辑/ 因为今天是空这并不工作过: Code http://img7.imagebanana.com/img/mracvfus/Bildschirmfoto20110605um11.32.57.png

感谢您的帮助! whitenexx

+0

不知道从何处取得dateDefault,在控制器或任何东西,它不是一个标准的Grails方法。你必须在你的EventController上定义一个dateDefault方法/闭包来让它工作(我假设它是一个创建日期的方便方法)。顺便说一句,我建议使用Joda时间(有一个Grails插件)进行日期和时间处理,它比使用java.util.Date要痛苦得多。 – Chris 2011-05-24 14:44:11

+0

我从互联网的代码示例中获得了此方法。从下面的“clearTime()”方法不起作用。 – whitenexx 2011-06-04 12:50:44

回答

1

假设List events参数包含有Date startTime属性对象的集合,下面应该工作:

def getEventsToday(List events) { 

    Date today = new Date().clearTime() 

    events.findAll {event -> 
    event.clearTime() == today 
    }  
} 
+0

这不起作用:(它将返回来自明天的事件的旧事件列表。 – whitenexx 2011-06-04 12:48:15