public static function fromParts()

in src/datetime/Time.php [51:75]


  public static function fromParts(
    int $hours,
    int $minutes = 0,
    int $seconds = 0,
    int $nanoseconds = 0,
  ): this {
    // This is where the normalization happens.
    $s = 3600 * $hours +
      60 * $minutes +
      $seconds +
      (int)($nanoseconds / NS_IN_SEC);
    $ns = $nanoseconds % NS_IN_SEC;
    if ($s < 0 && $ns > 0) {
      ++$s;
      $ns -= NS_IN_SEC;
    } else if ($s > 0 && $ns < 0) {
      --$s;
      $ns += NS_IN_SEC;
    }
    $m = (int)($s / 60);
    $s %= 60;
    $h = (int)($m / 60);
    $m %= 60;
    return new self($h, $m, $s, $ns);
  }