java已知当前时间,怎么计算上个时间点的整点,15,30或者45

比如:当前时间是8:02。
需要返回8:00。
当前时间为9:40
需要范围9:30.
当前时间为10:53
返回10:45.

如例子所说,望解答


        Date date = new Date();
        Calendar cd = Calendar.getInstance();
        cd.setTime(date);
        int minutes = cd.get(Calendar.MINUTE);
        cd.set(Calendar.MINUTE, minutes / 15 * 15);
        cd.set(Calendar.SECOND, 0);
        System.out.println(cd.getTime());

public static void main(String[] args) {
        //获取分钟
        SimpleDateFormat sdf = new SimpleDateFormat("mm");
        //比较分钟 小于15就是00  大于等于15并小于30就是15 以此类推
        int GetTime =Integer.parseInt(sdf.format(new Date()));
        String result;
        if (GetTime<15) {
            result="00";
        }else if (GetTime>=15 && GetTime<30) {
            result="15";
        }else if (GetTime>=30 && GetTime<45) {
            result="30";
        }else {
            result="45";
        }
        SimpleDateFormat sdf1 = new SimpleDateFormat("HH");
        String Time =sdf1.format(new Date());
        System.out.println(Time+":"+result);
    }

笨办法,直接判断分钟数
或者用数学办法,先按整数除以15,再乘以15

就是写几个判断条件呀,自己想