Google. Protobuf. WellknownTypes. Süre
Süre, nanosaniye cinsinden saniye sayısı ve saniyenin kesiri olarak gösterilen imzalanmış, sabit uzunlukta bir süreyi temsil eder.
Özet
Takvimden ve "gün" veya "ay" gibi kavramlardan bağımsızdır. İki Zaman Damgası değeri arasındaki farkın Süre olması ve bu değerin Zaman Damgası'na eklenmesi veya bu zaman aralığından çıkarılması için Zaman Damgası kullanılır. Aralık yaklaşık -10.000 yıldır.
1. Örnek: Sözde kodda iki Zaman Damgasından Süre hesaplama.
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 (durations.seconds > 0 && duration.nanos < 0) { duration.seconds -= 1; duration.nanos += 1000000000; }
2. Örnek: Söz konusu kodda Zaman Damgası + Süre'den Zaman Damgası hesaplama.
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; }
3. Örnek: Python'da date.timedelta'dan süre'yi hesaplayın.
td = datetime.timedelta(days=3, minutes=10) duration = Duration() duration.FromTimedelta(td)
Devralma
Devralındığı kaynak: Google.Protobuf.ICustomDiagnosticMessage, pb::IMessage< Süre >
İnşaat Ustaları ve Yıkıcılar |
|
---|---|
Duration()
|
|
Duration(Duration other)
|
Özellikler |
|
---|---|
Descriptor
|
pbr::MessageDescriptor
|
Descriptor
|
pbr::MessageDescriptor pb::IMessage.
|
Nanos
|
int
Sürenin nanosaniyelik çözünürlükte saniye cinsinden kesirli kısmı.
|
Parser
|
pb::MessageParser< Duration >
|
Seconds
|
long
Sürenin saniye cinsinden imzalanmış sayısı.
|
Herkese açık özellikler |
|
---|---|
MaxSeconds = 315576000000L
|
const long
İzin verilen maksimum saniye sayısı.
|
MinSeconds = -315576000000L
|
const long
İzin verilen minimum saniye sayısı.
|
NanosFieldNumber = 2
|
const int
"nanos" alanı için alan numarası.
|
NanosecondsPerSecond = 1000000000
|
const int
Saniyedeki nanosaniye sayısı.
|
NanosecondsPerTick = 100
|
const int
BCL işaretindeki nanosaniye sayısı (TimeSpan ve DateTime tarafından kullanıldığı şekilde).
|
SecondsFieldNumber = 1
|
const int
"Saniye" alanı için alan numarası.
|
Herkese açık işlevler |
|
---|---|
CalculateSize()
|
int
Protokol Arabellek kablosu biçiminde bu iletinin bayt cinsinden boyutunu hesaplar.
|
Clone()
|
|
Equals(object other)
|
override bool
|
Equals(Duration other)
|
bool
|
GetHashCode()
|
override int
|
MergeFrom(Duration other)
|
void
|
MergeFrom(pb::CodedInputStream input)
|
void
|
ToDiagnosticString()
|
string
Teşhis amacıyla bu Süre'nin dize gösterimini döndürür.
|
ToString()
|
override string
|
ToTimeSpan()
|
TimeSpan
Bu Süre'yi TimeSpan'a dönüştürür.
|
WriteTo(pb::CodedOutputStream output)
|
void
|
Herkese açık statik işlevler |
|
---|---|
FromTimeSpan(TimeSpan timeSpan)
|
Belirtilen TimeSpan'i Süre'ye dönüştürür.
|
operator+(Duration lhs, Duration rhs)
|
Belirtilen iki Süre değerini bir araya getirir.
|
operator-(Duration value)
|
Süreyi olumsuzlamanın sonucunu döndürür.
|
operator-(Duration lhs, Duration rhs)
|
Bir Süre'yi birbirinden çıkarır.
|
Özellikler
Açıklayıcı
pbr::MessageDescriptor Descriptor
Açıklayıcı
pbr::MessageDescriptor pb::IMessage. Descriptor
Nano
int Nanos
Sürenin nanosaniyelik çözünürlükte saniye cinsinden kesirli kısmı.
Bir saniyeden kısa süreli alanlar, 0 seconds
alanı ve pozitif veya negatif nanos
alanı ile gösterilir. Bir saniyelik veya daha uzun süreli nanos
alanı için sıfır olmayan bir değer, seconds
alanıyla aynı işaret olmalıdır. -999.999.999 ile +999.999.999 (dahil) arasında olmalıdır.
Ayrıştırıcı
pb::MessageParser< Duration > Parser
Saniye
long Seconds
Sürenin saniye cinsinden imzalanmış sayısı.
-315.576.000.000 ile +315.576.000.000 (dahil) arasında olmalıdır.
Herkese açık özellikler
Maks. Saniye
const long MaxSeconds = 315576000000L
İzin verilen maksimum saniye sayısı.
Saniye
const long MinSeconds = -315576000000L
İzin verilen minimum saniye sayısı.
Saniyede Nanosaniye
const int NanosecondsPerSecond = 1000000000
Saniyedeki nanosaniye sayısı.
NanosaniyePerTick
const int NanosecondsPerTick = 100
BCL işaretindeki nanosaniye sayısı (TimeSpan ve DateTime tarafından kullanıldığı şekilde).
Herkese açık işlevler
Hesap Boyutu
int CalculateSize()
Protokol Arabellek kablosu biçiminde bu iletinin bayt cinsinden boyutunu hesaplar.
Ayrıntılar | |
---|---|
İadeler |
Bu iletinin kodlanan bir çıkış akışına yazılması için gereken bayt sayısı.
|
Klonla
Duration Clone()
Süre
Duration()
Süre
Duration( Duration other )
Şuna eşittir:
override bool Equals( object other )
Şuna eşittir:
bool Equals( Duration other )
GetHashCode'u
override int GetHashCode()
Birleştirme Kaynağı
void MergeFrom( Duration other )
Birleştirme Kaynağı
void MergeFrom( pb::CodedInputStream input )
Teşhis Aracı
string ToDiagnosticString()
Teşhis amacıyla bu Süre'nin dize gösterimini döndürür.
Normalde döndürülen değer bir JSON dizesi değeridir (baştaki ve sondaki tırnak işaretleri dahil) ancak değer normalleştirilmemişse veya aralık dışındaysa uyarıyla birlikte bir JSON nesne gösterimi döndürülür. Bu, sorunları teşhis etmeye çalışırken istisnaların atılmaması için kullanılır. Normal JSON biçimlendiricisi, normalleştirilmemiş değerler için bir istisna göndermeye devam eder.
Ayrıntılar | |
---|---|
İadeler |
Bu değerin bir dize gösterimi.
|
Dize
override string ToString()
Zaman Kaydırma
TimeSpan ToTimeSpan()
Bu Süre'yi TimeSpan'a dönüştürür.
Süre, belirli bir değer sayısı değilse 0 değerine kısaltılır.
Ayrıntılar | |||
---|---|---|---|
İstisnalar |
|
||
İadeler |
Bu sürenin
TimeSpan olarak değeri. |
Yazma
void WriteTo( pb::CodedOutputStream output )
Herkese açık statik işlevler
Zaman Kaydırmadan
Duration FromTimeSpan( TimeSpan timeSpan )
operatör+
Duration operator+( Duration lhs, Duration rhs )
Belirtilen iki Süre değerini bir araya getirir.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
||||
İadeler |
|