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; } } } }