الفهرس
Duration
(رسالة)
المدة
وتمثل المدة فترة زمنية موقعة وثابتة المدة كعدد من الثواني وكسور من الثانية بدرجة دقة نانوية. وهي مستقلة عن أي تقويم ومفاهيم مثل "يوم" أو "شهر". ويرتبط أيضًا بالطابع الزمني في أن الفارق بين قيمتَين من طوابع الوقت هو "المدة" ويمكن إضافته أو طرحه من طوابع زمنية. يتراوح النطاق تقريبًا من +-10,000 سنة.
المثال 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 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. |