Package google.protobuf

Índice

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.