1

У меня есть небольшая проблема с моим проектом:Groovy/Grails - Jollyday CalenderUtil - Нет подписи метода

URI /TimeKeeper/календарь/показать

Класс заводной .lang.MissingMethodException

Сообщение Нет подписи метода: static de.jollyday.util.CalendarUtil.create() применим для типов аргументов: (java.util.GregorianCalendar) значения: [java.util.GregorianCalendar [time = 1406897280000, areFieldsSet = true, areAllFieldsSet = верно, мягко = верно, зона = sun.util.calendar.ZoneInfo [ID = "Европа/Берлин", смещение = 3600000, dstSavings = 3600000, useDaylight = верно, переходы = 143, lastRule = java.util.SimpleTimeZone [идентификатор = Европа/Берлин, смещение = 3600000, dstSavings = 3600000, useDaylight = верно, StartYear = 0, StartMode = 2, StartMonth = 2, startDay = -1, startDayOfWeek = 1, = 3600000 начальный промежуток, startTimeMode = 2, endMode = 2, endMonth = 9, endDay = -1, endDayOfWeek = 1, EndTime = 3600000, endTimeMode = 2]], firstDayOfWeek = 2, minimalDaysInFirstWeek = 4, ERA = 1, = 2014 ГОД, МЕСЯЦ = 7, WEEK_OF_YEAR = 31, WEEK_OF_MONTH = 0 , DAY_OF_MONTH = 1, day_of_year = 213, DAY_OF_WEEK = 6, DAY_OF_WEEK_IN_MONTH = 1, AM_PM = 1, ЧАС = 2, HOUR_OF_DAY = 14, МИНУТНЫЙ = 48, ВТОРОЙ = 0, миллисекунды = 0, ZONE_OFFSET = 3600000, DST_OFFSET = 3600000]] Возможные решения: creat (int, de.jollyday.config.Fixed), create (int, int, int), create (int, int, int, org.joda.time.Chronology)), Grep()

И вот мой код, где генерируется исключение:

import static java.util.Calendar.* 
import de.jollyday.* 
import de.jollyday.util.* 

class DayReport { 
    def day 
    def records 

    def getHolidayName() { 
     def m = HolidayManager.getInstance(HolidayCalendar.GERMANY) 
     def holidays = m.getHolidays(day.get(YEAR), 'nw') 
     holidays.find { 
      CalendarUtil.create(day) == it.date 
     }?.description 
    } 

    def isHoliday() { 
     def m = HolidayManager.getInstance(HolidayCalendar.GERMANY) 

     def create = CalendarUtil.create(day) 
     println "DayReport isHoliday: ${create.getClass()}" 
     m.isHoliday(create, 'nw') 
    } 

... 

Может кто-нибудь сказать мне, что случилось?

Спасибо :)

+0

странно ... Попробуйте литья свой день в календарь: 'CalendarUtil.create (день в календаре)' – injecteer

+0

это не работает, как хорошо. Я исправил его с помощью org.joda.time.LocalDate вместо CalendarUtil. – clue404

ответ

1
def getHolidayName() { 
    def m = HolidayManager.getInstance(HolidayCalendar.GERMANY) 
    def holidays = m.getHolidays(day.get(YEAR), 'nw') 
    holidays.find { 
     new LocalDate(day.getTime()) == new LocalDate(it.date) 
    }?.description 
} 

def isHoliday() { 
    def m = HolidayManager.getInstance(HolidayCalendar.GERMANY) 
    def localDate = new LocalDate(day.getTime()) 
    println "localDate: " + localDate 
    m.isHoliday(localDate, 'nw') 
} 

Это же решение