Как проверить, находятся ли текущее время и пользовательское время в пределах временного интервала устройства (время настенных часов) 30 минут - PullRequest
0 голосов
/ 10 июня 2019

У меня есть уникальная проблема, где я должен определить 2 вещи.

1) если мое текущее время и пользовательское время находятся в одном и том же 30-минутном интервале времени (скажем, его 14:10, а пользовательское время - 14:22, я хочу видеть, что они находятся в одном интервале времени от 2 до 2:30), но не должны находиться в одном и том же временном интервале, если текущее время 13:55, а пользовательское время - 14:15 (разница 30 минут, но не в том же временном интервале устройства / часов, как один - с 13:30 до 14:00). а другой - с 2 до 14:30)

2) Теперь, в течение того же временного интервала в 30 минут, если текущее время предшествует заданному времени, я хочу вернуть значение true, иначе вернуть false. любой способ рассчитать это? Я собираюсь добавить пользовательскую функцию в свой общий класс utils, где я могу передать ей пользовательское время и текущее время и увидеть результат, поэтому было бы полезно иметь что-то общее. Есть идеи?

Я смотрел на: Проверьте, лежит ли данное время между двумя периодами времени независимо от даты и других статей, но ничто не описывает 30-минутный период времени устройства / часов.

Любая идея, если https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/time/DateUtils.html каким-то образом поможет мне манипулировать этой точной логикой, или любая пользовательская функция / библиотека в Android поможет с этим. будет очень полезно!

1 Ответ

0 голосов
/ 10 июня 2019
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 ложь

...