Package google.protobuf

Index

Durée

Une durée représente une période de durée signée signée, représentée par un nombre de secondes et des fractions de secondes à une résolution de l'ordre de la nanoseconde. Il est indépendant de tout calendrier et concept tels que "jour" ou "mois". Elle est liée à l'horodatage dans la mesure où la différence entre deux valeurs d'horodatage est une durée et peut être ajoutée ou soustraite d'un horodatage. La plage est d'environ +-10 000 ans.

Exemple 1: Calculer la durée à partir de deux horodatages en pseudo-code

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;
}

Exemple 2: Calculer l'horodatage à partir de l'horodatage et de la durée en pseudo-code

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;
}
Nom du champ Type Description
seconds int64 Signé de quelques secondes de la période. La valeur doit être comprise entre -315 576 000 000 et +315 576 000 000 (inclus).
nanos int32 Fraction de secondes d'une durée de résolution de l'ordre de quelques nanosecondes. Les durées inférieures à une seconde sont représentées par un champ de 0 seconds et un champ d'nanos positif ou négatif. Pour les durées d'une seconde ou plus, une valeur non nulle pour le champ nanos doit avoir le même signe que le champ seconds. La valeur doit être comprise entre -999 999 999 et +999 999 999 inclus.