为了便于持久化和绑定(来自 HTTP 参数)该类的实例,我将每次表示为两个整数字段并添加一些辅助方法,例如getStartTime()
and getEndTime()
。如果您需要执行诸如计算开始时间和结束时间之间的差异之类的操作,您可能希望将这些帮助程序更改为返回 aDate
而不是 a (其中日期部分设置为今天)。String
class StatTimings {
static transients = ['startTime', 'endTime']
Integer startHours
Integer startMins
Integer endHours
Integer endMins
private String formatTime(Integer hours, Integer mins) {
String formattedHours = hours < 10 ? "0$hours" : hours.toString()
String formattedMins = mins < 10 ? "0$mins" : mins.toString()
"$formattedHours:$formattedMins"
}
String getStartTime() {
formatTime(startHours, startMins)
}
String getEndTime() {
formatTime(endHours, endMins)
}
static constraints = {
startHours range: 0..23
endHours range: 0..23
startMins range: 0..59
endMins range: 0..59
// TODO: add a custom validator that checks the end time is after start time
}
}