/**

     * 一天的开始时间

     * @param date

     * @return

     */

    static Date dayBegin(Date date) {

        def cal = Calendar.getInstance()

        cal.setTime(date)

        cal.set(Calendar.HOUR_OF_DAY, 0)

        cal.set(Calendar.MINUTE, 0)

        cal.set(Calendar.SECOND, 0)

        cal.set(Calendar.MILLISECOND, 0)


        return cal.getTime()

    }


    /**

     * 一天的结束时间

     * @param date

     * @return

     */

    static Date dayEnd(Date date) {

        def cal = Calendar.getInstance()

        cal.setTime(date)

        cal.set(Calendar.HOUR_OF_DAY, 23)

        cal.set(Calendar.MINUTE, 59)

        cal.set(Calendar.SECOND, 59)

        cal.set(Calendar.MILLISECOND, 0)


        return cal.getTime()

    }


    /**

     * 是否为上午时间

     * @param day 参考日期

     * @param target 目标时间

     * @return 如果目标时间是参考日期的上午时间,返回true

     */

    static boolean isAfternoon(Date day, Date target) {

        def h0 = dayBegin(day)

        def h24 = dayEnd(day)

        def h12 = DateUtils.addHours(h0, +12)

        return target.before(h24) && target.after(h12)

    }


    /**

     * 是否为下午时间

     * @param day 参考日期

     * @param target 目标时间

     * @return 如果目标时间是参考日期的下午时间,返回true

     */

    static boolean isMorning(Date day, Date target) {

        def h0 = dayBegin(day)

        def h12 = DateUtils.addHours(h0, +12)

        return target.after(h0) && target.before(h12)

    }