इंडेक्स
Duration
(मैसेज)
कुल समय
अवधि से हस्ताक्षर की गई और तय समय की अवधि का पता चलता है. इसे नैनोसेकंड रिज़ॉल्यूशन पर सेकंड के हिसाब से और सेकंड के फ़्रैक्शन के तौर पर दिखाया जाता है. यह किसी भी कैलेंडर और कॉन्सेप्ट से अलग है, जैसे कि "दिन" या "महीना". यह टाइमस्टैंप से जुड़ी है, क्योंकि दो टाइमस्टैंप की वैल्यू के बीच का अंतर समय होता है और इसे टाइमस्टैंप में से जोड़ा या घटाया जा सकता है. यह सीमा करीब-करीब 10,000 साल से ज़्यादा की है.
उदाहरण 1: pseudo code में दो टाइमस्टैंप से कुल समय का हिसाब लगाएं.
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: टाइमस्टैंप से टाइमस्टैंप + pseudo code में अवधि की गिनती करें.
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 |
समयावधि के हस्ताक्षर वाले सेकंड. यह वैल्यू -3,15,57,00,000 से +3,15,57,00,000 के बीच होनी चाहिए. |
nanos |
int32 |
इस समय के स्पैन के नैनोसेकंड रिज़ॉल्यूशन पर, सेकंड के हस्ताक्षर वाले अंश. एक सेकंड से कम की अवधि को 0 seconds फ़ील्ड और पॉज़िटिव या नेगेटिव nanos फ़ील्ड के ज़रिए दिखाया जाता है. एक सेकंड या उससे ज़्यादा की अवधि के लिए, nanos फ़ील्ड के लिए गैर-शून्य मान का चिह्न seconds फ़ील्ड के समान होना चाहिए. यह -9,99,99,999 से लेकर +9,99,999,999 के बीच होना चाहिए. |