Core Java

Java time range check

In Java, there are various methods available for determining whether a specific time falls within a given time range, disregarding dates. Let us explore various ways to check if a given time lies between two times in Java.

1. Using the isAfter() and isBefore() methods

Below is an example of using the isAfter() and isBefore() methods available in the Java LocalTime class.

package com.jcg.example;

import java.time.LocalTime;

public class TimeRangeChecker {
    public static void main(String[] args) {
        // Define the start and end times of the range
        LocalTime startTime = LocalTime.of(9, 0); // 09:00
        LocalTime endTime = LocalTime.of(17, 0);  // 17:00
        
        // Define the time to check
        LocalTime checkTime = LocalTime.of(13, 30); // 13:30
        
        // Check if the checkTime is within the range
        if (checkTime.isAfter(startTime) && checkTime.isBefore(endTime)) {
            System.out.println("The given time is within the specified range.");
        } else {
            System.out.println("The given time is outside the specified range.");
        }
    }
}

1.1 Code Explanation

This Java code defines:

  • We import the LocalTime class from the java.time package to work with time objects.
  • Inside the TimeRangeChecker class, we define the main method where our code execution begins.
  • We declare and initialize the start (startTime) and end (endTime) times of the range using the of() method of the LocalTime class.
  • We define the time to check (checkTime) using the of() method.
  • Using the isAfter() and isBefore() methods, we determine if the checkTime lies between startTime and endTime.
  • Depending on the result, we print whether the given time is within or outside the specified range.

1.2 Code Output

When you run the above Java code, it will produce the following output:

The given time is within the specified range.

2. Using the compareTo() method

Below is an example of using the compareTo() method available in the Java LocalTime class.

package com.jcg.example;

import java.time.LocalTime;

public class TimeRangeChecker {
  public static void main(String[] args) {
    // Define the start and end times of the range
    LocalTime startTime = LocalTime.of(9, 0); // 09:00
    LocalTime endTime = LocalTime.of(17, 0); // 17:00

    // Define the time to check
    LocalTime checkTime = LocalTime.of(13, 30); // 13:30

    // Check if the checkTime is within the range
    if (checkTime.compareTo(startTime) >= 0 && checkTime.compareTo(endTime) <= 0) {
      System.out.println("The given time is within the specified range.");
    } else {
      System.out.println("The given time is outside the specified range.");
    }
  }
}

2.1 Code Explanation

This Java code defines:

  • We import the LocalTime class from the java.time package to work with time objects.
  • Inside the TimeRangeChecker class, we define the main method where our code execution begins.
  • We declare and initialize the start (startTime) and end (endTime) times of the range using the of() method of the LocalTime class.
  • We define the time to check (checkTime) using the of() method.
  • Using the compareTo() method, we compare the checkTime with startTime and endTime.
  • If the result of both comparisons is within the range [0, 0], then the checkTime lies between startTime and endTime.
  • Depending on the result, we print whether the given time is within or outside the specified range.

2.2 Code Output

When you run the above Java code, it will produce the following output:

The given time is within the specified range.

3. Using the after() and before() methods

Below is an example of using the isAfter() and isBefore() methods available in the Java LocalTime class.

package com.jcg.example;

import java.time.LocalTime;

public class TimeRangeChecker {
  public static void main(String[] args) {
    // Define the start and end times of the range
    LocalTime startTime = LocalTime.of(9, 0); // 09:00
    LocalTime endTime = LocalTime.of(17, 0); // 17:00

    // Define the time to check
    LocalTime checkTime = LocalTime.of(13, 30); // 13:30

    // Check if the checkTime is within the range
    if (checkTime.isAfter(startTime) && checkTime.isBefore(endTime)) {
      System.out.println("The given time is within the specified range.");
    } else {
      System.out.println("The given time is outside the specified range.");
    }
  }
}

3.1 Code Explanation

This Java code defines:

  • We import the LocalTime class from the java.time package to work with time objects.
  • Inside the TimeRangeChecker class, we define the main method where our code execution begins.
  • We declare and initialize the start (startTime) and end (endTime) times of the range using the of() method of the LocalTime class.
  • We define the time to check (checkTime) using the of() method.
  • Using the isAfter() and isBefore() methods, we determine if the checkTime lies between startTime and endTime.
  • Depending on the result, we print whether the given time is within or outside the specified range.

3.2 Code Output

When you run the above Java code, it will produce the following output:

The given time is within the specified range.

4. Conclusion

In conclusion, when it comes to determining if a given time lies between two times regardless of the date in Java, there are several methods available.

Firstly, using the isAfter() and isBefore() methods of the LocalTime class provides a straightforward approach. These methods allow for direct comparison of time instances, making it easy to check if a given time falls within a specified range.

Secondly, the compareTo() method offers another option for time comparison. This method returns an integer value representing the difference between two-time instances. By examining the result, we can determine if a time is before, after, or equal to another time.

Lastly, the after() and before() methods provide a more concise way of checking if a time falls within a range. These methods return boolean values indicating whether one-time instance is after or before another time instance. While slightly less explicit than the other methods, they offer a succinct way of achieving the desired functionality.

Yatin Batra

An experience full-stack engineer well versed with Core Java, Spring/Springboot, MVC, Security, AOP, Frontend (Angular & React), and cloud technologies (such as AWS, GCP, Jenkins, Docker, K8).
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button