mirror of
https://github.com/gwdevhub/Daybreak.git
synced 2026-07-15 15:19:57 +00:00
ab1b604aec
* Resolve warnings and move shared props to Directory.Build.props and Directory.Packages.props * Cleanup more messages * Fix more messages * Fix build issues
31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
namespace Daybreak.Shared.Utils;
|
|
|
|
public static class DateTimeExtensions
|
|
{
|
|
/// <summary>
|
|
/// Converts <see cref="DateTime"/> to <see cref="DateTimeOffset"/> safely and clamps the values between <see cref="DateTimeOffset.MinValue"/> and <see cref="DateTimeOffset.MaxValue"/>
|
|
/// </summary>
|
|
public static DateTimeOffset ToSafeDateTimeOffset(this DateTime dateTime)
|
|
{
|
|
var utcDateTime = DateTime.SpecifyKind(dateTime, DateTimeKind.Utc);
|
|
return utcDateTime.ToUniversalTime() <= DateTimeOffset.MinValue.UtcDateTime
|
|
? DateTimeOffset.MinValue
|
|
: utcDateTime.ToUniversalTime() >= DateTimeOffset.MaxValue.UtcDateTime
|
|
? DateTimeOffset.MaxValue
|
|
: new DateTimeOffset(utcDateTime);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Converts <see cref="DateTime"/> to <see cref="DateTimeOffset"/> safely and clamps the values between <see cref="DateTimeOffset.MinValue"/> and <see cref="DateTimeOffset.MaxValue"/>
|
|
/// </summary>
|
|
public static DateTimeOffset? ToSafeDateTimeOffset(this DateTime? dateTime)
|
|
{
|
|
if (!dateTime.HasValue)
|
|
{
|
|
return default;
|
|
}
|
|
|
|
return dateTime.Value.ToSafeDateTimeOffset();
|
|
}
|
|
}
|