Index
Duration
(message)
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. |