Index
Duration
(message)
Durée
Une durée représente une durée signée et fixe, représentée sous forme de nombre de secondes et de fractions de secondes avec une résolution de l'ordre de la nanoseconde. Elle est indépendante de tout calendrier ou concept, tel que "jour" ou "mois". Elle est liée au code temporel en ce sens que la différence entre deux valeurs d'horodatage est une durée et qu'elle peut être ajoutée à un horodatage ou soustraite. La plage est d'environ +-10 000 ans.
Exemple 1: Calculer la durée à partir de deux horodatages dans un 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 du code temporel + Durée dans un 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 |
Secondes signées de la période. La valeur doit être comprise entre -315 576 000 000 et +315 576 000 000 (inclus). |
nanos |
int32 |
Fractions de seconde signées à une résolution à la nanoseconde de l'intervalle de temps. Les durées inférieures à une seconde sont représentées par un champ seconds de 0 et un champ nanos positif ou négatif. Pour les durées d'une seconde ou plus, une valeur non nulle du 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). |