Class Nanoseconds

java.lang.Object
com.telenav.kivakit.interfaces.time.Nanoseconds
All Implemented Interfaces:
Comparable<Nanoseconds>

public class Nanoseconds extends Object implements Comparable<Nanoseconds>
Accurate model of a number of nanoseconds, represented as a number of seconds and a number of nanoseconds. This yields the same precision is the same as in Java time.
Author:
jonathanl (shibo)
  • Field Details

    • ZERO

      public static Nanoseconds ZERO
      Zero nanoseconds
    • ONE

      public static Nanoseconds ONE
      One nanosecond
    • ONE_SECOND

      public static Nanoseconds ONE_SECOND
      One nanosecond
  • Constructor Details

    • Nanoseconds

      protected Nanoseconds()
      For serialization
  • Method Details

    • milliseconds

      public static Nanoseconds milliseconds(double milliseconds)
      Factory method
      Parameters:
      milliseconds - The number of nanoseconds
      Returns:
      The new Nanoseconds object
    • nanoseconds

      public static Nanoseconds nanoseconds(long nanoseconds)
      Factory method
      Parameters:
      nanoseconds - The number of nanoseconds
      Returns:
      The new Nanoseconds object
    • nanoseconds

      public static Nanoseconds nanoseconds(double nanoseconds)
      Factory method
      Parameters:
      nanoseconds - The number of nanoseconds
      Returns:
      The new Nanoseconds object
    • nanoseconds

      public static Nanoseconds nanoseconds(BigDecimal nanoseconds)
      Factory method
      Parameters:
      nanoseconds - The number of nanoseconds
      Returns:
      The new Nanoseconds object
    • nanoseconds

      public static Nanoseconds nanoseconds(long seconds, long nanoseconds)
      Factory method that constructs from a number of seconds and a number of nanoseconds. If the nanoseconds value is larger than 1E9, any excess seconds are moved into the seconds value.
      Parameters:
      seconds - The number of seconds
      nanoseconds - The number of nanoseconds, which may be large enough to include seconds
      Returns:
      The new Nanoseconds object
    • seconds

      public static Nanoseconds seconds(double seconds)
      Factory method that constructs from a number of seconds
      Parameters:
      seconds - The number of seconds
      Returns:
      The new Nanoseconds object
    • asBigDecimal

      public BigDecimal asBigDecimal()
      Converts this count of nanoseconds to a BigDecimal value
      Returns:
      The number of nanoseconds
    • asDouble

      public double asDouble()
      This number of nanoseconds as a double-precision floating point value
      Returns:
      The number of nanoseconds
    • compareTo

      public int compareTo(Nanoseconds that)
      Specified by:
      compareTo in interface Comparable<Nanoseconds>
    • dividedBy

      public double dividedBy(Nanoseconds divisor)
      Computes this value divided by the given value
      Parameters:
      divisor - The divisor
      Returns:
      The dividend
    • dividedBy

      public Nanoseconds dividedBy(double divisor)
      Divides this number of nanoseconds by the given divisor
      Parameters:
      divisor - The scaling factor
      Returns:
      This number of nanoseconds scaled by the given factor
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • isGreaterThan

      public boolean isGreaterThan(Nanoseconds that)
    • isGreaterThanOrEqualTo

      public boolean isGreaterThanOrEqualTo(Nanoseconds that)
    • isLessThan

      public boolean isLessThan(Nanoseconds that)
    • isLessThanOrEqualTo

      public boolean isLessThanOrEqualTo(Nanoseconds that)
    • isNegative

      public boolean isNegative()
    • isZero

      public boolean isZero()
      Returns:
      True if this is zero nanoseconds
    • minus

      public Nanoseconds minus(Nanoseconds that)
      Computes this minus that
      Parameters:
      that - The nanoseconds to subtract
      Returns:
      The difference
    • modulo

      public Nanoseconds modulo(Nanoseconds divisor)
      Computes the remainder when dividing by the given divisor
      Parameters:
      divisor - The divisor
      Returns:
      The remainder (modulus)
    • plus

      public Nanoseconds plus(Nanoseconds that)
      Adds the given number of nanoseconds to this value
      Parameters:
      that - The nanoseconds to add
      Returns:
      The sum of this and that
    • roundDown

      public Nanoseconds roundDown(Nanoseconds unit)
      Rounds this value down to the nearest unit value
      Parameters:
      unit - The quantization unit
      Returns:
      The rounded value
    • roundUp

      public Nanoseconds roundUp(Nanoseconds unit)
      Rounds this value up to the nearest unit value
      Parameters:
      unit - The quantization unit
      Returns:
      The rounded value
    • times

      public Nanoseconds times(double factor)
      Multiplies this number of nanoseconds by the given factor
      Parameters:
      factor - The scaling factor
      Returns:
      This number of nanoseconds scaled by the given factor
    • toString

      public String toString()
      Overrides:
      toString in class Object