我有一个独特的问题,我必须确定两件事。
1)如果我的当前时间和自定义时间在相同的30分钟时间段(比如2:10 2pm,自定义时间是2:22 2pm),我希望看到它们在2- 2:30的同一时间段内,但如果当前时间是1:55 2pm,自定义时间是2:15 2pm,则它们不应该在相同的时间段内(30分钟的差异,但不是在相同的设备/时钟时间段内,因为一个是1:30到2 2pm,另一个是2到2:30 2pm)
2)现在,在相同的时间段30分钟内,如果当前时间在自定义时间之前,我想返回true,否则返回false。有没有办法计算这个?我希望在我的公共utils类中添加一个自定义函数,在那里我可以给它提供自定义时间和当前时间,并查看结果,所以如果有一些通用的东西会很有用。有什么想法吗?
我看过:Check if a given time lies between two times regardless of date和其他文章,但没有描述30分钟设备/时钟时间段的文章。
任何想法,如果https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DateUtils.html将以某种方式帮助我操纵这个精确的逻辑或安卓中的任何自定义函数/库,都会对此有所帮助。将会非常有帮助!
发布于 2019-06-10 21:17:41
package Demo;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.Arrays;
public class Test1 {
public static void main(String arg[]) {
LocalDateTime ct = LocalDateTime.now();
LocalDateTime custemTime = ct.plusMinutes(5);
System.out.println(ct);
System.out.println(custemTime) ;
System.out.println(isInSameSlots(ct,custemTime));
}
static boolean isInSameSlots(LocalDateTime ldt1, LocalDateTime ltd2) {
Long timeDiff = ChronoUnit.MINUTES.between(ldt1, ltd2);
if(timeDiff > 30 || timeDiff < 0)
return false;
return (ldt1.getMinute() <= 30 && ltd2.getMinute() <= 30) || (ldt1.getMinute() > 30 && ltd2.getMinute() > 30 ) ? true : false;
}
}案例1
2019-06-10T18:40:09.122
2019-06-10T18:45:09.122
真的
案例2) 2019-06-10T18:46:56.350 2019-06-10T19:06:56.350 false
https://stackoverflow.com/questions/56524844
复制相似问题