gpt4 book ai didi

java - 找出两个时间之间最接近的时间

转载 作者:行者123 更新时间:2023-12-02 09:41:03 25 4
gpt4 key购买 nike

我想问一些关于Java的问题。我有从 JSON 数据解析的时间(字符串)列表。我需要找到哪个时间更接近系统时间。就这样,现在时间是16点40分。我的时间 list 包含“16:32”、“16:38”、“16:44”、“16:50”等等。对于 16:40,16:38 比 16:44 更近,我需要找到这个。我试图获取当前索引和下一个索引,解析它们并启动新的日历等等。但我不知道下一步该怎么做。

这个问题有什么解决办法吗?

       String returnTime = current.getDonus();
if (i < list.size() + 1) {
TimeList nextOne=list.get(i+1);
String nextReturnTime = nextOne.getDonus();
String[] parsedNextReturn = nextReturnTime.split(":");
String[] parsedReturn = returnTime.split(":");

Date date = new Date();

Calendar calNextReturn= Calendar.getInstance();
calNextReturn.setTime(date);
calNextReturn.set(Calendar.HOUR_OF_DAY, Integer.parseInt(parsedNextReturn[0]));
calNextReturn.set(Calendar.MINUTE, Integer.parseInt(parsedNextReturn[1]));
calNextReturn.set(Calendar.SECOND, 0);
calNextReturn.set(Calendar.MILLISECOND, 0);

Calendar calCurrentReturn= Calendar.getInstance();
calCurrentReturn.setTime(date);
calCurrentReturn.set(Calendar.HOUR_OF_DAY, Integer.parseInt(parsedReturn[0]));
calCurrentReturn.set(Calendar.MINUTE, Integer.parseInt(parsedReturn[1]));
calCurrentReturn.set(Calendar.SECOND, 0);
calCurrentReturn.set(Calendar.MILLISECOND, 0);

Calendar calSystem = Calendar.getInstance();
calSystem.setTime(date);
calSystem.set(Calendar.SECOND, 0);
calSystem.set(Calendar.MILLISECOND, 0);
}

最佳答案

试试这个:

        long smallestABS = Long.MAX_VALUE;
long systemTime = System.currentTimeMillis();
long timeClosest;
for (long time : timeList) {
long abs = Math.abs(systemTime - time);
if(smallestABS > abs){
smallestABS = abs;
timeClosest = time;
}
}

关于java - 找出两个时间之间最接近的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57058924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com