如何检查当前时间和自定义时间是否在30分钟的设备时隙(墙上时钟时间)内

时间:2019-06-10 10:42:53

标签: java android date datetime android-dateutils

我有一个独特的问题,我必须确定两件事。

1)如果我的当前时间和自定义时间在相同的30分钟时隙内(例如,其2:10 pm且自定义时间为2:22 pm,我希望看到它们在从2到2的同一时隙内2:30),但如果当前时间是1:55 pm并且自定义时间是2:15 pm(相差30分钟,但不在同一设备/时钟时隙中,因为1:30到2pm,则不应位于同一时间段)另一个是下午2点到2:30)

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是否会以某种方式帮助我操纵这种确切的逻辑,或者android中的任何自定义函数/库都可以帮助您。真的很有帮助!

1 个答案:

答案 0 :(得分:0)

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

true

情况2) 2019-06-10T18:46:56.350 2019-06-10T19:06:56.350 错误