Dizin
Duration
(message)
Süre
Süre, nanosaniye çözünürlükte saniye sayısı ve saniyenin kesirleriyle temsil edilen imzalı, sabit uzunlukta bir zaman aralığını temsil eder. Takvim ve "gün" veya "ay" gibi kavramlardan bağımsızdır. Bu, Zaman Damgasıyla ilgili olarak, iki Zaman Damgası değeri arasındaki farkın bir Süre olması ve bir Zaman Damgasından eklenebilmesi veya çıkarılmasıyla ilgilidir. Aralık yaklaşık +-10.000 yıldır.
1. Örnek: Sözde koddaki iki zaman damgasından elde edilen iş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 İşlem 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 |
Dönem içinde imzalanmış saniyeler. -315.576.000.000 ile +315.576.000.000 dahil bu değer arasında olmalıdır. |
nanos |
int32 |
Zaman aralığının nanosaniye çözünürlüğünde işaretli saniyenin kesirleri. Bir saniyeden kısa süreler, 0 seconds alanı ve pozitif veya negatif nanos alanı ile gösterilir. Bir saniye veya daha uzun süreler için nanos alanı için sıfır olmayan bir değer, seconds alanıyla aynı işarete sahip olmalıdır. -999.999.999 ile +999.999.999 dahil bu değerler arasında olmalıdır. |