Package google.protobuf

Index

Dauer

Die Dauer wird für eine vorzeichenbehaftete Zeitspanne von fester Länge in Sekunden und Sekundenbruchteilen bei Nanosekunden-Auflösung angegeben. Er ist unabhängig von Kalendern und Konzepten wie „Tag“ oder „Monat“. Sie ist mit dem Zeitstempel vergleichbar, da die Differenz zwischen zwei Zeitstempelwerten eine Dauer ist und von einem Zeitstempel addiert oder abgezogen werden kann. Die Reichweite beträgt ungefähr +-10.000 Jahre.

Beispiel 1: Rechendauer aus zwei Zeitstempeln in Pseudocode berechnen.

Timestamp start = ...;
Timestamp end = ...;
Duration duration = ...;

duration.seconds = end.seconds - start.seconds;
duration.nanos = end.nanos - start.nanos;

if (duration.seconds < 0 && duration.nanos > 0) {
  duration.seconds += 1;
  duration.nanos -= 1000000000;
} else if (duration.seconds > 0 && duration.nanos < 0) {
  duration.seconds -= 1;
  duration.nanos += 1000000000;
}

Beispiel 2: Zeitstempel aus Zeitstempel + Dauer in Pseudocode berechnen.

Timestamp start = ...;
Duration duration = ...;
Timestamp end = ...;

end.seconds = start.seconds + duration.seconds;
end.nanos = start.nanos + duration.nanos;

if (end.nanos < 0) {
  end.seconds -= 1;
  end.nanos += 1000000000;
} else if (end.nanos >= 1000000000) {
  end.seconds += 1;
  end.nanos -= 1000000000;
}
Feldname Typ Beschreibung
seconds int64 Signierte Sekunden der Zeitspanne. Muss zwischen -315.576.000.000 und +315.576.000.000 liegen.
nanos int32 Signierte Bruchteile einer Sekunde bei Nanosekunden-Auflösung der Zeitspanne. Eine Dauer von weniger als einer Sekunde wird durch das Feld seconds und durch das Feld nanos dargestellt. Für eine Dauer von mindestens einer Sekunde muss ein Wert ungleich null für das Feld nanos dasselbe Vorzeichen wie das Feld seconds haben. Muss zwischen -999.999.999 und +999.999.999 liegen.