假期的Jollyday地区

时间:2015-06-29 11:00:40

标签: collections groovy

我使用jollyday检查假期,以便在日历中显示它们。

通过使用年份和regionCode调用Method,我将假期作为集合:

HolidayManager m = HolidayManager.getInstance(HolidayCalendar.GERMANY);
Set<Holiday> holidays =m.getHolidays(year, regionCode)

也许我必须为不同的regionCodes多次这样做,但所有都来自一个Set。 在我度过了所有假期之后,我想在这个节日制作一张信息地图:

Map getCalendarProperties(Holiday holiday) {
    HolidayManager m = HolidayManager.getInstance(HolidayCalendar.GERMANY);

    Map a = [:]
    a.tooltip = "<div class='row'>" +
            "<div class='col-xs-6'><b>${holiday.description}</b></div>" +
            "<div class='col-xs-6'>    </div>" +
            "</div>"  
    a.date = holiday?.date.toString(DateTimeFormat.forPattern("YYYY-MM-dd"));
    return a
}

我想在工具提示中写一下德国这个假期的地区。

我可以查看每个地区的日期,但这对此非常重要。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

好吧,既然jollyday的API没有提供你想要的视图,并且它没有使用可以自己完成的正确multimap,你必须构建它。做这样的事情(未经测试的代码,我的Groovy生锈):

regionsForHolidays = [:]
regions.each{ region -> 
    holidays = m.getHolidays(year, region)
    holidays.each{ holiday ->
        set = regionsForHolidays[holiday]
        if(set==null){
            set = []
            regionsForHolidays[holiday] = set
        }
        set.add(region)
    }
}

然后,您可以查询regionsForHolidays[holiday]并获取一组区域。