Package google.protobuf

אינדקס

משך הקורס

משך הזמן מייצג טווח זמן קבוע באורך קבוע, שמיוצג כמספר שניות ושברים של שניות ברזולוציה של ננו-שנייה. הוא לא תלוי ביומן ובמושגים כמו 'יום' או 'חודש'. היא קשורה ל-Timestamp בכך שההפרש בין שני ערכים של Timestamp הוא 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, כולל.