NOT: Bu site kullanımdan kaldırılmıştır. Site 31 Ocak 2023'ten sonra kapatılacak ve trafik https://protobuf.dev adresindeki yeni siteye yönlendirilecek. Bu sırada, yalnızca protobuf.dev'de güncellemeler yapılacak.

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ı.

NanoAlanAlanı

const int NanosFieldNumber = 2

"nanos" alanı için alan numarası.

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).

Saniye AlanSayısı

const int SecondsFieldNumber = 1

"Saniye" alanı için alan numarası.

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
InvalidOperationException
Bu değer, dokümanlarda açıklandığı gibi geçerli bir normalleştirilmiş süre değil.
İ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
)

Belirtilen TimeSpan'i Süre'ye dönüştürür.

Ayrıntılar
Parametreler
timeSpan
Dönüştürülecek TimeSpan.
İadeler
Belirtilen TimeSpan değeri (Duration olarak).

operatör+

Duration operator+(
  Duration lhs,
  Duration rhs
)

Belirtilen iki Süre değerini bir araya getirir.

Ayrıntılar
Parametreler
lhs
Eklenecek ilk değer. Boş olmamalıdır.
rhs
Eklenecek ikinci değer. Boş olmamalıdır.
İadeler

operatör-

Duration operator-(
  Duration value
)

Süreyi olumsuzlamanın sonucunu döndürür.

Örneğin, 5 dakikalık olumsuzluk -5 dakikadır.

Ayrıntılar
Parametreler
value
Reddetme süresi. Boş olmamalıdır.
İadeler
Bu sürenin negatif değeri.

operatör-

Duration operator-(
  Duration lhs,
  Duration rhs
)

Bir Süre'yi birbirinden çıkarır.

Ayrıntılar
Parametreler
lhs
Çıkarılacak süre. Boş olmamalıdır.
rhs
Çıkarılacak süre. Boş olmamalıdır.
İadeler
Belirtilen iki süre arasındaki fark.