设计一个关于时间的Java程序

设计一个java程序,如果时间是13:42分输出13:40
如果时间是13:48 输出13:45
就是说每隔10分钟,如果当前已经过了一半则四舍五入,输出五分钟的那个点
比如 16:20 输出16:20
16:23 输出16:20
16:25 输出16:25
16:26 输出16:25


import java.time.LocalTime;

public class ElevenTest {
    public static void main(String[] args) {
        LocalTime now = LocalTime.now();
        int newMinute = now.getMinute() / 5 * 5;
        System.out.println(LocalTime.of(now.getHour(), newMinute, 0));
    }

}

如有帮助,请采纳哦

由于CSDN不推荐大家直接给到源码。这个我可以提供解决方案 及 关键方法代码。
你可以选择Data Calendar String 来处理
首先,获取封装一个方法,传入时间,返回处理之后的方法。
// 方案一:直接拿到分钟数 if else 去判断然后
// 方案二:拿到分钟数之后 转换 字符串 去判断
// 方案三:循环遍历分钟数 5的倍数 处理
// 推荐方案 先取模 忽略5倍数的余数 拿到5的倍数 ,然后再 乘5 即可。
希望你看到这自己能写出如下代码。当然如果你基础比较差,你可以将我给到你的其他方案自己去做实现,不要一开始就直接用给到你的推荐方案。

/**
* @Auto GuPao 天明
* 设计一个java程序,如果时间是13:42分输出13:40
* 如果时间是13:48 输出13:45
* 就是说每隔10分钟,如果当前已经过了一半则四舍五入,输出五分钟的那个点
* 比如 16:20 输出16:20
* 16:23 输出16:20
* 16:25 输出16:25
* 16:26 输出16:25
* @return
/
public static Calendar formartCal (){
Calendar calendar = Calendar.getInstance();
int minute = calendar.get(calendar.MINUTE);
// 方案一:直接拿到分钟数 if else 去判断然后
// 方案二:拿到分钟数之后 转换 字符串 去判断
// 方案三:循环遍历分钟数 5的倍数 处理
// 推荐方案 先取模 忽略5倍数的余数 拿到5的倍数 ,然后再 乘5 即可
int temp =0;
temp = minute/5;
System.out.println(calendar.get(calendar.HOUR) +":"+ temp
5);
calendar.set(Calendar.MINUTE,temp*5);
return calendar;
}

简单且粗暴,不需要任何脑子,自己加一个定时器就行


public static void main(String[] args) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
        String time1 = simpleDateFormat.format(new Date());
        String mStr = time1.substring(4);
        Integer mInt = Integer.valueOf(mStr);
        String lastStr = null;
        if (mInt>=5){
            lastStr = "5";
        }else{
            lastStr = "0";
        }
        System.out.println(time1.substring(0,4)+lastStr);
    }