20 lines
646 B
C#
20 lines
646 B
C#
|
namespace InnovEnergy.Lib.Time.Unix;
|
||
|
|
||
|
public readonly partial struct UnixTime
|
||
|
{
|
||
|
private UnixTime(UInt32 ticks) => Ticks = ticks;
|
||
|
|
||
|
public static UnixTime FromTicks(UInt32 ticks) => new UnixTime(ticks);
|
||
|
public static UnixTime FromTicks(Int32 ticks) => new UnixTime((UInt32) ticks);
|
||
|
|
||
|
public static UnixTime FromUtcDateTime(DateTime dateTime)
|
||
|
{
|
||
|
var timeSinceEpoch = dateTime - DateTime.UnixEpoch;
|
||
|
var ticks = (UInt32) timeSinceEpoch.TotalSeconds;
|
||
|
|
||
|
return new UnixTime(ticks);
|
||
|
}
|
||
|
|
||
|
public static UnixTime Epoch => new UnixTime(0);
|
||
|
public static UnixTime Now => FromUtcDateTime(DateTime.UtcNow);
|
||
|
}
|