Class Jdk8Methods

java.lang.Object
org.threeten.bp.jdk8.Jdk8Methods

public final class Jdk8Methods extends Object
A set of utility methods that provide additional functionality for working with dates and times.

The contents of this class replace functionality available in JDK 8.

Specification for implementors

This is a thread-safe utility class. All returned classes are immutable and thread-safe.
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    floorDiv​(int a, int b)
    Returns the floor division.
    static long
    floorDiv​(long a, long b)
    Returns the floor division.
    static int
    floorMod​(int a, int b)
    Returns the floor modulus.
    static int
    floorMod​(long a, int b)
    Returns the floor modulus.
    static long
    floorMod​(long a, long b)
    Returns the floor modulus.
    static int
    safeAdd​(int a, int b)
    Safely adds two int values.
    static long
    safeAdd​(long a, long b)
    Safely adds two long values.
    static int
    safeMultiply​(int a, int b)
    Safely multiply one int by another.
    static long
    safeMultiply​(long a, int b)
    Safely multiply a long by an int.
    static long
    safeMultiply​(long a, long b)
    Multiply two values throwing an exception if overflow occurs.
    static int
    safeSubtract​(int a, int b)
    Safely subtracts one int from another.
    static long
    safeSubtract​(long a, long b)
    Safely subtracts one long from another.
    static int
    safeToInt​(long value)
    Safely convert a long to an int.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • safeAdd

      public static int safeAdd(int a, int b)
      Safely adds two int values.
      Parameters:
      a - the first value
      b - the second value
      Returns:
      the result
      Throws:
      ArithmeticException - if the result overflows an int
    • safeAdd

      public static long safeAdd(long a, long b)
      Safely adds two long values.
      Parameters:
      a - the first value
      b - the second value
      Returns:
      the result
      Throws:
      ArithmeticException - if the result overflows a long
    • safeSubtract

      public static int safeSubtract(int a, int b)
      Safely subtracts one int from another.
      Parameters:
      a - the first value
      b - the second value to subtract from the first
      Returns:
      the result
      Throws:
      ArithmeticException - if the result overflows an int
    • safeSubtract

      public static long safeSubtract(long a, long b)
      Safely subtracts one long from another.
      Parameters:
      a - the first value
      b - the second value to subtract from the first
      Returns:
      the result
      Throws:
      ArithmeticException - if the result overflows a long
    • safeMultiply

      public static int safeMultiply(int a, int b)
      Safely multiply one int by another.
      Parameters:
      a - the first value
      b - the second value
      Returns:
      the result
      Throws:
      ArithmeticException - if the result overflows an int
    • safeMultiply

      public static long safeMultiply(long a, int b)
      Safely multiply a long by an int.
      Parameters:
      a - the first value
      b - the second value
      Returns:
      the new total
      Throws:
      ArithmeticException - if the result overflows a long
    • safeMultiply

      public static long safeMultiply(long a, long b)
      Multiply two values throwing an exception if overflow occurs.
      Parameters:
      a - the first value
      b - the second value
      Returns:
      the new total
      Throws:
      ArithmeticException - if the result overflows a long
    • safeToInt

      public static int safeToInt(long value)
      Safely convert a long to an int.
      Parameters:
      value - the value to convert
      Returns:
      the int value
      Throws:
      ArithmeticException - if the result overflows an int
    • floorDiv

      public static long floorDiv(long a, long b)
      Returns the floor division.

      This returns 0 for floorDiv(0, 4).
      This returns -1 for floorDiv(-1, 4).
      This returns -1 for floorDiv(-2, 4).
      This returns -1 for floorDiv(-3, 4).
      This returns -1 for floorDiv(-4, 4).
      This returns -2 for floorDiv(-5, 4).

      Parameters:
      a - the dividend
      b - the divisor
      Returns:
      the floor division
    • floorMod

      public static long floorMod(long a, long b)
      Returns the floor modulus.

      This returns 0 for floorMod(0, 4).
      This returns 1 for floorMod(-1, 4).
      This returns 2 for floorMod(-2, 4).
      This returns 3 for floorMod(-3, 4).
      This returns 0 for floorMod(-4, 4).

      Parameters:
      a - the dividend
      b - the divisor
      Returns:
      the floor modulus (positive)
    • floorMod

      public static int floorMod(long a, int b)
      Returns the floor modulus.

      This returns 0 for floorMod(0, 4).
      This returns 3 for floorMod(-1, 4).
      This returns 2 for floorMod(-2, 4).
      This returns 1 for floorMod(-3, 4).
      This returns 0 for floorMod(-4, 4).
      This returns 3 for floorMod(-5, 4).

      Parameters:
      a - the dividend
      b - the divisor
      Returns:
      the floor modulus (positive)
    • floorDiv

      public static int floorDiv(int a, int b)
      Returns the floor division.

      This returns 1 for floorDiv(3, 3).
      This returns 0 for floorDiv(2, 3).
      This returns 0 for floorDiv(1, 3).
      This returns 0 for floorDiv(0, 3).
      This returns -1 for floorDiv(-1, 3).
      This returns -1 for floorDiv(-2, 3).
      This returns -1 for floorDiv(-3, 3).
      This returns -2 for floorDiv(-4, 3).

      Parameters:
      a - the dividend
      b - the divisor
      Returns:
      the floor division
    • floorMod

      public static int floorMod(int a, int b)
      Returns the floor modulus.

      This returns 0 for floorMod(3, 3).
      This returns 2 for floorMod(2, 3).
      This returns 1 for floorMod(1, 3).
      This returns 0 for floorMod(0, 3).
      This returns 2 for floorMod(-1, 3).
      This returns 1 for floorMod(-2, 3).
      This returns 0 for floorMod(-3, 3).
      This returns 2 for floorMod(-4, 3).

      Parameters:
      a - the dividend
      b - the divisor
      Returns:
      the floor modulus (positive)