فهرست مطالب
-
Duration
(پیام)
مدت زمان
مدت زمان نشان دهنده یک بازه زمانی مشخص و با طول ثابت است که به صورت شمارش ثانیه و کسری از ثانیه در وضوح نانوثانیه نمایش داده می شود. مستقل از هر تقویم و مفاهیمی مانند "روز" یا "ماه" است. از آنجایی که تفاوت بین دو مقدار Timestamp یک مدت زمان است و می توان آن را از یک Timestamp اضافه یا کم کرد، با Timestamp مرتبط است. برد تقریباً +10000 سال است.
مثال 1: مدت زمان را از دو مُهر زمانی در شبه کد محاسبه کنید.
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: مهر زمانی را از Timestamp + Duration در شبه کد محاسبه کنید.
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;
}
نام زمینه | تایپ کنید | شرح |
---|---|---|
seconds | int64 | ثانیه های امضا شده از بازه زمانی. باید از -315,576,000,000 تا +315,576,000,000 باشد. |
nanos | int32 | علامت کسری از ثانیه در وضوح نانوثانیه از بازه زمانی. مدت زمان کمتر از یک ثانیه با یک میدان 0 seconds و یک میدان nanos مثبت یا منفی نشان داده می شود. برای مدت زمان یک ثانیه یا بیشتر، یک مقدار غیر صفر برای فیلد nanos باید همان علامت فیلد seconds باشد. باید از 999,999,999- تا 999,999,999+ باشد. |