7public readonly
struct TimeOnly :
IComparable,
IComparable<TimeOnly>,
IEquatable<TimeOnly>,
ISpanFormattable,
IFormattable,
IComparisonOperators<TimeOnly, TimeOnly>,
IEqualityOperators<TimeOnly, TimeOnly>,
IMinMaxValue<TimeOnly>,
ISpanParseable<TimeOnly>,
IParseable<TimeOnly>,
ISubtractionOperators<TimeOnly, TimeOnly, TimeSpan>
25 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
28 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
32 : this(
DateTime.TimeToTicks(hour, minute, 0, 0))
36 public TimeOnly(
int hour,
int minute,
int second)
37 : this(
DateTime.TimeToTicks(hour, minute, second, 0))
41 public TimeOnly(
int hour,
int minute,
int second,
int millisecond)
42 : this(
DateTime.TimeToTicks(hour, minute, second, millisecond))
48 if ((ulong)ticks > 863999999999uL)
62 return new TimeOnly((
_ticks + 864000000000
L + ticks % 864000000000
L) % 864000000000
L);
67 wrappedDays = (int)(ticks / 864000000000
L);
68 long num =
_ticks + ticks % 864000000000
L;
74 else if (num >= 864000000000
L)
99 return AddTicks((
long)(
value * 36000000000.0), out wrappedDays);
109 return AddTicks((
long)(
value * 600000000.0), out wrappedDays);
114 long ticks =
start._ticks;
133 return left._ticks == right.
_ticks;
138 return left._ticks != right.
_ticks;
143 return left._ticks > right.
_ticks;
148 return left._ticks >= right.
_ticks;
153 return left._ticks < right.
_ticks;
158 return left._ticks <= right.
_ticks;
213 return _ticks == timeOnly._ticks;
221 return (
int)ticks ^ (int)(ticks >> 32);
228 if (parseFailureKind != 0)
239 if (parseFailureKind != 0)
255 if (parseFailureKind != 0)
273 return Parse(
s.AsSpan(), provider, style);
320 if (((uint)style & 0xFFFFFFF8u) != 0)
353 if (((uint)style & 0xFFFFFFF8u) != 0)
364 format =
"HH':'mm':'ss'.'fffffff";
402 if (((uint)style & 0xFFFFFFF8u) != 0 ||
formats ==
null)
408 for (
int i = 0; i <
formats.Length; i++)
412 if (
string.IsNullOrEmpty(
text))
417 if (
text.Length == 1)
423 text =
"HH':'mm':'ss'.'fffffff";
428 text =
"HH':'mm':'ss";
457 return TryParse(
s.AsSpan(), provider, style, out result);
467 if (
s ==
null ||
format ==
null)
607 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
613 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
616 return left <= right;
619 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
625 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
628 return left >= right;
631 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
634 return left == right;
637 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
640 return left != right;
643 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
646 return Parse(
s, provider);
649 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
655 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
658 return Parse(
s, provider);
661 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
667 [RequiresPreviewFeatures(
"Generic Math is in preview.", Url =
"https://aka.ms/dotnet-warnings/generic-math-preview")]
static bool TryParse(ReadOnlySpan< char > s, DateTimeFormatInfo dtfi, DateTimeStyles styles, out DateTime result)
static bool TryParseExact(ReadOnlySpan< char > s, ReadOnlySpan< char > format, DateTimeFormatInfo dtfi, DateTimeStyles style, out DateTime result)
static CultureInfo InvariantCulture
static string Format(string resourceFormat, object p1)
static string Argument_InvalidDateStyles
static string Arg_MustBeTimeOnly
static string ArgumentOutOfRange_TimeOnlyBadTicks
static string Format_BadTimeOnly
static string Argument_BadFormatSpecifier
static string Format_DateTimeOnlyContainsNoneDateParts
static string Format_InvalidString
static void ThrowArgumentNullException(string name)
static bool TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, out TSelf result)
static TSelf Parse(string s, IFormatProvider? provider)
static bool TryParse(ReadOnlySpan< char > s, IFormatProvider? provider, out TSelf result)
static TSelf Parse(ReadOnlySpan< char > s, IFormatProvider? provider)
void Init(ReadOnlySpan< char > originalDateTimeString)
static bool TryParseExact(ReadOnlySpan< char > s, ReadOnlySpan< char > format, out TimeOnly result)
static ParseFailureKind TryParseInternal(ReadOnlySpan< char > s, IFormatProvider provider, DateTimeStyles style, out TimeOnly result)
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string?[]? formats, out TimeOnly result)
static bool operator<(TimeOnly left, TimeOnly right)
int CompareTo(TimeOnly value)
static TimeOnly ParseExact(ReadOnlySpan< char > s, string[] formats)
static TimeOnly FromDateTime(DateTime dateTime)
TimeOnly AddTicks(long ticks)
static TimeOnly Parse(ReadOnlySpan< char > s, IFormatProvider? provider=null, DateTimeStyles style=DateTimeStyles.None)
bool IsBetween(TimeOnly start, TimeOnly end)
static bool operator>=(TimeOnly left, TimeOnly right)
string ToShortTimeString()
static bool operator<=(TimeOnly left, TimeOnly right)
TimeOnly AddMinutes(double value)
TimeOnly(int hour, int minute)
static TimeOnly ParseExact(string s, string format)
bool Equals(TimeOnly value)
override string ToString()
static TimeOnly Parse(string s, IFormatProvider? provider, DateTimeStyles style=DateTimeStyles.None)
static bool TryParse([NotNullWhen(true)] string? s, out TimeOnly result)
static TimeOnly ParseExact(ReadOnlySpan< char > s, string[] formats, IFormatProvider? provider, DateTimeStyles style=DateTimeStyles.None)
static TimeOnly FromTimeSpan(TimeSpan timeSpan)
TimeOnly Add(TimeSpan value)
static ParseFailureKind TryParseExactInternal(ReadOnlySpan< char > s, string[] formats, IFormatProvider provider, DateTimeStyles style, out TimeOnly result)
bool TryFormat(Span< char > destination, out int charsWritten, ReadOnlySpan< char > format=default(ReadOnlySpan< char >), IFormatProvider? provider=null)
static TimeOnly IMinMaxValue< TimeOnly >. MinValue
static TimeOnly ParseExact(ReadOnlySpan< char > s, ReadOnlySpan< char > format, IFormatProvider? provider=null, DateTimeStyles style=DateTimeStyles.None)
TimeOnly Add(TimeSpan value, out int wrappedDays)
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string?[]? formats, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
override int GetHashCode()
static TimeSpan operator-(TimeOnly t1, TimeOnly t2)
string ToString(string? format)
static bool operator==(TimeOnly left, TimeOnly right)
static bool TryParseExact(ReadOnlySpan< char > s, [NotNullWhen(true)] string?[]? formats, out TimeOnly result)
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string? format, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
TimeOnly AddHours(double value)
static void ThrowOnError(ParseFailureKind result, ReadOnlySpan< char > s)
TimeOnly AddHours(double value, out int wrappedDays)
TimeOnly(int hour, int minute, int second)
static TimeOnly ParseExact(string s, string[] formats)
static bool operator>(TimeOnly left, TimeOnly right)
string ToString(IFormatProvider? provider)
static TimeOnly ParseExact(string s, string format, IFormatProvider? provider, DateTimeStyles style=DateTimeStyles.None)
static bool operator!=(TimeOnly left, TimeOnly right)
TimeOnly AddMinutes(double value, out int wrappedDays)
string ToLongTimeString()
static bool TryParse(ReadOnlySpan< char > s, out TimeOnly result)
int CompareTo(object? value)
static TimeOnly IMinMaxValue< TimeOnly >. MaxValue
override bool Equals([NotNullWhen(true)] object? value)
TimeOnly AddTicks(long ticks, out int wrappedDays)
static TimeOnly Parse(string s)
static bool TryParseExact(ReadOnlySpan< char > s, ReadOnlySpan< char > format, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
static bool TryParse(ReadOnlySpan< char > s, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
string ToString(string? format, IFormatProvider? provider)
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string? format, out TimeOnly result)
static ParseFailureKind TryParseExactInternal(ReadOnlySpan< char > s, ReadOnlySpan< char > format, IFormatProvider provider, DateTimeStyles style, out TimeOnly result)
static bool TryParseExact(ReadOnlySpan< char > s, [NotNullWhen(true)] string?[]? formats, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
static TimeOnly ParseExact(string s, string[] formats, IFormatProvider? provider, DateTimeStyles style=DateTimeStyles.None)
static bool TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
TimeOnly(int hour, int minute, int second, int millisecond)