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