Package google.protobuf

الفهرس

المدة

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