Package google.protobuf

الفهرس

المدة

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