Índice
Duration
(mensaje)
Duración
Un objeto Duration representa un intervalo de tiempo firmado y de longitud fija representado como un recuento de segundos y fracciones de segundos a una resolución de nanosegundos. Es independiente de cualquier calendario y concepto como "día" o "mes". Se relaciona con la marca de tiempo en el sentido de que la diferencia entre dos valores de marca de tiempo es una duración y se puede agregar o quitar de una marca de tiempo. El rango es de aproximadamente +-10,000 años.
Ejemplo 1: Duración de procesamiento a partir de dos marcas de tiempo en pseudocódigo.
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;
}
Ejemplo 2: Marca de tiempo de procesamiento a partir de la marca de tiempo + Duración en seudocódigo.
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;
}
Nombre del campo | Tipo | Descripción |
---|---|---|
seconds |
int64 |
Segundos firmados del período. Debe ser un número entre -315,576,000,000 y +315,576,000,000, inclusive. |
nanos |
int32 |
Fracciones firmadas de un segundo a una resolución de nanosegundos del lapso de tiempo. Las duraciones de menos de un segundo se representan con un campo seconds de 0 y un campo nanos positivo o negativo. Si la duración es de un segundo o más, un valor distinto de cero en el campo nanos debe tener el mismo signo que el campo seconds . Debe ser un valor entre -999,999,999 y +999,999,999, incluido. |