fix(core): Anchors delta min/max (#656)
This commit is contained in:
parent
c79a8a4002
commit
b99d520019
2 changed files with 23 additions and 3 deletions
|
|
@ -36,7 +36,16 @@ namespace Server
|
||||||
|
|
||||||
DateTime ReadDateTime() => new(ReadLong(), DateTimeKind.Utc);
|
DateTime ReadDateTime() => new(ReadLong(), DateTimeKind.Utc);
|
||||||
TimeSpan ReadTimeSpan() => new(ReadLong());
|
TimeSpan ReadTimeSpan() => new(ReadLong());
|
||||||
DateTime ReadDeltaTime() => new(ReadLong() + DateTime.UtcNow.Ticks, DateTimeKind.Utc);
|
|
||||||
|
DateTime ReadDeltaTime()
|
||||||
|
{
|
||||||
|
return ReadLong() switch
|
||||||
|
{
|
||||||
|
long.MinValue => DateTime.MinValue,
|
||||||
|
long.MaxValue => DateTime.MaxValue,
|
||||||
|
var delta => new DateTime(delta + DateTime.UtcNow.Ticks, DateTimeKind.Utc)
|
||||||
|
};
|
||||||
|
}
|
||||||
decimal ReadDecimal() => new(stackalloc int[4] { ReadInt(), ReadInt(), ReadInt(), ReadInt() });
|
decimal ReadDecimal() => new(stackalloc int[4] { ReadInt(), ReadInt(), ReadInt(), ReadInt() });
|
||||||
int ReadEncodedInt()
|
int ReadEncodedInt()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ namespace Server
|
||||||
var ticks = (value.Kind switch
|
var ticks = (value.Kind switch
|
||||||
{
|
{
|
||||||
DateTimeKind.Local => value.ToUniversalTime(),
|
DateTimeKind.Local => value.ToUniversalTime(),
|
||||||
DateTimeKind.Unspecified => value.ToLocalTime().ToUniversalTime(),
|
DateTimeKind.Unspecified => value.ToLocalTime().ToUniversalTime(),
|
||||||
_ => value
|
_ => value
|
||||||
}).Ticks;
|
}).Ticks;
|
||||||
|
|
||||||
|
|
@ -49,10 +49,21 @@ namespace Server
|
||||||
}
|
}
|
||||||
void WriteDeltaTime(DateTime value)
|
void WriteDeltaTime(DateTime value)
|
||||||
{
|
{
|
||||||
|
if (value == DateTime.MinValue)
|
||||||
|
{
|
||||||
|
Write(long.MinValue);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (value == DateTime.MaxValue)
|
||||||
|
{
|
||||||
|
Write(long.MaxValue);
|
||||||
|
}
|
||||||
|
|
||||||
var ticks = (value.Kind switch
|
var ticks = (value.Kind switch
|
||||||
{
|
{
|
||||||
DateTimeKind.Local => value.ToUniversalTime(),
|
DateTimeKind.Local => value.ToUniversalTime(),
|
||||||
DateTimeKind.Unspecified => value.ToLocalTime().ToUniversalTime(),
|
DateTimeKind.Unspecified => value.ToLocalTime().ToUniversalTime(),
|
||||||
_ => value
|
_ => value
|
||||||
}).Ticks;
|
}).Ticks;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue