设计一个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) +":"+ temp5);
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);
}