Package google.protobuf

Dizin

Süre

Süre, nanosaniye cinsinden saniye sayısı ve saniyenin kesiri olarak gösterilen imzalanmış, sabit uzunlukta bir süreyi temsil eder. Takvimden ve "gün" veya "ay" gibi kavramlardan bağımsızdır. İki Zaman Damgası değeri arasındaki farkın Zaman Süresi olması ve bu değerin Zaman Damgası'na eklenmesi veya zaman damgasından çıkarılabilmesi, zaman damgasıyla ilgilidir. Aralık yaklaşık -10.000 yıldır.

1. Örnek: Sözde kodda iki Zaman Damgasından İşlem Süresi.

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

2. Örnek: Zaman damgasından kaynaklanan zaman damgası + sözde koddaki süre.

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;
}
Alan adı Tür Açıklama
seconds int64 Sürenin saniye cinsinden imzalanmış sayısı. -315.576.000.000 ile +315.576.000.000 (dahil) arasında olmalıdır.
nanos int32 Sürenin nanosaniyelik çözünürlükte saniye cinsinden kesirli kısmı. Bir saniyeden kısa süreli alanlar, 0 seconds alanı ve pozitif veya negatif nanos alanı ile gösterilir. Bir saniyelik veya daha uzun süreli nanos alanı için sıfır olmayan bir değer, seconds alanıyla aynı işaret olmalıdır. -999.999.999 ile +999.999.999 (dahil) arasında olmalıdır.