PKHeX/PKHeX.Core/Saves/Substructures/Gen8/HallOfFameTime8.cs

42 lines
1.2 KiB
C#
Raw Normal View History

using System;
using System.Diagnostics;
using System.ComponentModel;
using static System.Buffers.Binary.BinaryPrimitives;
namespace PKHeX.Core
{
public sealed class HallOfFameTime8 : SaveBlock
{
public HallOfFameTime8(SAV8SWSH sav, SCBlock block) : base(sav, block.Data)
{
Debug.Assert(Data.Length == 8);
}
private const string General = nameof(General);
[Category(General), Description("Raw amount of seconds since 1970 (Unix Timestamp)")]
public long TimeStamp
{
get => ReadInt64LittleEndian(Data.AsSpan(Offset + 0));
set => WriteInt64LittleEndian(Data.AsSpan(Offset), value);
}
[Category(General), Description("Date and Time (UTC) the player entered the Hall Of Fame")]
public DateTime Date
{
get
{
var epoch = new DateTime(1970, 1, 1);
var date = epoch.AddSeconds(TimeStamp);
return date;
}
set
{
var epoch = new DateTime(1970, 1, 1);
var delta = value.Subtract(epoch);
TimeStamp = (long)delta.TotalSeconds;
}
}
}
}