32 lines
1.0 KiB
C#
32 lines
1.0 KiB
C#
using RTCSync.Utils;
|
|
|
|
namespace RTCSync.Models;
|
|
|
|
public class TimeModel(ReadOnlySpan<byte> rtcBytes)
|
|
{
|
|
private static int CalculateHours(ReadOnlySpan<byte> rtcBytes)
|
|
{
|
|
var hours = 0;
|
|
if (TimeModelBI.TwentyHourBI.Take(rtcBytes) == 1)
|
|
{
|
|
hours = 20;
|
|
}
|
|
else if (TimeModelBI.TenHourBI.Take(rtcBytes) == 1)
|
|
{
|
|
hours = 10;
|
|
}
|
|
|
|
hours += TimeModelBI.HourBI.Take(rtcBytes);
|
|
return hours;
|
|
}
|
|
|
|
public DateTime Time = new DateTime(
|
|
2000 + TimeModelBI.TenYearBI.Take(rtcBytes) * 10 + TimeModelBI.YearBI.Take(rtcBytes),
|
|
TimeModelBI.TenMonthBI.Take(rtcBytes) * 10 + TimeModelBI.MonthBI.Take(rtcBytes),
|
|
TimeModelBI.TenDateBI.Take(rtcBytes) * 10 + TimeModelBI.DateBI.Take(rtcBytes),
|
|
CalculateHours(rtcBytes),
|
|
TimeModelBI.TenMinutesBI.Take(rtcBytes) * 10 + TimeModelBI.MinutesBI.Take(rtcBytes),
|
|
TimeModelBI.TenSecondsBI.Take(rtcBytes) * 10 + TimeModelBI.SecondsBI.Take(rtcBytes),
|
|
DateTimeKind.Local
|
|
);
|
|
} |