Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
TimeOnly.cs
Go to the documentation of this file.
4
5namespace System;
6
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>
8{
9 private readonly long _ticks;
10
11 public static TimeOnly MinValue => new TimeOnly(0uL);
12
13 public static TimeOnly MaxValue => new TimeOnly(863999999999uL);
14
15 public int Hour => new TimeSpan(_ticks).Hours;
16
17 public int Minute => new TimeSpan(_ticks).Minutes;
18
19 public int Second => new TimeSpan(_ticks).Seconds;
20
22
23 public long Ticks => _ticks;
24
25 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
27
28 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
30
31 public TimeOnly(int hour, int minute)
32 : this(DateTime.TimeToTicks(hour, minute, 0, 0))
33 {
34 }
35
36 public TimeOnly(int hour, int minute, int second)
37 : this(DateTime.TimeToTicks(hour, minute, second, 0))
38 {
39 }
40
41 public TimeOnly(int hour, int minute, int second, int millisecond)
42 : this(DateTime.TimeToTicks(hour, minute, second, millisecond))
43 {
44 }
45
46 public TimeOnly(long ticks)
47 {
48 if ((ulong)ticks > 863999999999uL)
49 {
51 }
52 _ticks = ticks;
53 }
54
55 internal TimeOnly(ulong ticks)
56 {
57 _ticks = (long)ticks;
58 }
59
60 private TimeOnly AddTicks(long ticks)
61 {
62 return new TimeOnly((_ticks + 864000000000L + ticks % 864000000000L) % 864000000000L);
63 }
64
65 private TimeOnly AddTicks(long ticks, out int wrappedDays)
66 {
67 wrappedDays = (int)(ticks / 864000000000L);
68 long num = _ticks + ticks % 864000000000L;
69 if (num < 0)
70 {
71 wrappedDays--;
72 num += 864000000000L;
73 }
74 else if (num >= 864000000000L)
75 {
76 wrappedDays++;
77 num -= 864000000000L;
78 }
79 return new TimeOnly(num);
80 }
81
83 {
84 return AddTicks(value.Ticks);
85 }
86
87 public TimeOnly Add(TimeSpan value, out int wrappedDays)
88 {
89 return AddTicks(value.Ticks, out wrappedDays);
90 }
91
92 public TimeOnly AddHours(double value)
93 {
94 return AddTicks((long)(value * 36000000000.0));
95 }
96
97 public TimeOnly AddHours(double value, out int wrappedDays)
98 {
99 return AddTicks((long)(value * 36000000000.0), out wrappedDays);
100 }
101
102 public TimeOnly AddMinutes(double value)
103 {
104 return AddTicks((long)(value * 600000000.0));
105 }
106
107 public TimeOnly AddMinutes(double value, out int wrappedDays)
108 {
109 return AddTicks((long)(value * 600000000.0), out wrappedDays);
110 }
111
113 {
114 long ticks = start._ticks;
115 long ticks2 = end._ticks;
116 if (ticks > ticks2)
117 {
118 if (ticks > _ticks)
119 {
120 return ticks2 > _ticks;
121 }
122 return true;
123 }
124 if (ticks <= _ticks)
125 {
126 return ticks2 > _ticks;
127 }
128 return false;
129 }
130
131 public static bool operator ==(TimeOnly left, TimeOnly right)
132 {
133 return left._ticks == right._ticks;
134 }
135
136 public static bool operator !=(TimeOnly left, TimeOnly right)
137 {
138 return left._ticks != right._ticks;
139 }
140
141 public static bool operator >(TimeOnly left, TimeOnly right)
142 {
143 return left._ticks > right._ticks;
144 }
145
146 public static bool operator >=(TimeOnly left, TimeOnly right)
147 {
148 return left._ticks >= right._ticks;
149 }
150
151 public static bool operator <(TimeOnly left, TimeOnly right)
152 {
153 return left._ticks < right._ticks;
154 }
155
156 public static bool operator <=(TimeOnly left, TimeOnly right)
157 {
158 return left._ticks <= right._ticks;
159 }
160
161 public static TimeSpan operator -(TimeOnly t1, TimeOnly t2)
162 {
163 return new TimeSpan((t1._ticks - t2._ticks + 864000000000L) % 864000000000L);
164 }
165
166 public static TimeOnly FromTimeSpan(TimeSpan timeSpan)
167 {
168 return new TimeOnly(timeSpan._ticks);
169 }
170
171 public static TimeOnly FromDateTime(DateTime dateTime)
172 {
173 return new TimeOnly(dateTime.TimeOfDay.Ticks);
174 }
175
177 {
178 return new TimeSpan(_ticks);
179 }
180
182 {
183 return new DateTime(_ticks);
184 }
185
187 {
188 return _ticks.CompareTo(value._ticks);
189 }
190
191 public int CompareTo(object? value)
192 {
193 if (value == null)
194 {
195 return 1;
196 }
197 if (!(value is TimeOnly value2))
198 {
200 }
201 return CompareTo(value2);
202 }
203
204 public bool Equals(TimeOnly value)
205 {
206 return _ticks == value._ticks;
207 }
208
209 public override bool Equals([NotNullWhen(true)] object? value)
210 {
211 if (value is TimeOnly timeOnly)
212 {
213 return _ticks == timeOnly._ticks;
214 }
215 return false;
216 }
217
218 public override int GetHashCode()
219 {
220 long ticks = _ticks;
221 return (int)ticks ^ (int)(ticks >> 32);
222 }
223
224 public static TimeOnly Parse(ReadOnlySpan<char> s, IFormatProvider? provider = null, DateTimeStyles style = DateTimeStyles.None)
225 {
226 TimeOnly result;
227 ParseFailureKind parseFailureKind = TryParseInternal(s, provider, style, out result);
228 if (parseFailureKind != 0)
229 {
230 ThrowOnError(parseFailureKind, s);
231 }
232 return result;
233 }
234
236 {
237 TimeOnly result;
238 ParseFailureKind parseFailureKind = TryParseExactInternal(s, format, provider, style, out result);
239 if (parseFailureKind != 0)
240 {
241 ThrowOnError(parseFailureKind, s);
242 }
243 return result;
244 }
245
247 {
248 return ParseExact(s, formats, null);
249 }
250
252 {
253 TimeOnly result;
254 ParseFailureKind parseFailureKind = TryParseExactInternal(s, formats, provider, style, out result);
255 if (parseFailureKind != 0)
256 {
257 ThrowOnError(parseFailureKind, s);
258 }
259 return result;
260 }
261
262 public static TimeOnly Parse(string s)
263 {
264 return Parse(s, null);
265 }
266
267 public static TimeOnly Parse(string s, IFormatProvider? provider, DateTimeStyles style = DateTimeStyles.None)
268 {
269 if (s == null)
270 {
272 }
273 return Parse(s.AsSpan(), provider, style);
274 }
275
276 public static TimeOnly ParseExact(string s, string format)
277 {
278 return ParseExact(s, format, null);
279 }
280
281 public static TimeOnly ParseExact(string s, string format, IFormatProvider? provider, DateTimeStyles style = DateTimeStyles.None)
282 {
283 if (s == null)
284 {
286 }
287 if (format == null)
288 {
290 }
291 return ParseExact(s.AsSpan(), format.AsSpan(), provider, style);
292 }
293
294 public static TimeOnly ParseExact(string s, string[] formats)
295 {
296 return ParseExact(s, formats, null);
297 }
298
299 public static TimeOnly ParseExact(string s, string[] formats, IFormatProvider? provider, DateTimeStyles style = DateTimeStyles.None)
300 {
301 if (s == null)
302 {
304 }
305 return ParseExact(s.AsSpan(), formats, provider, style);
306 }
307
308 public static bool TryParse(ReadOnlySpan<char> s, out TimeOnly result)
309 {
310 return TryParse(s, null, DateTimeStyles.None, out result);
311 }
312
313 public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
314 {
315 return TryParseInternal(s, provider, style, out result) == ParseFailureKind.None;
316 }
317
319 {
320 if (((uint)style & 0xFFFFFFF8u) != 0)
321 {
322 result = default(TimeOnly);
323 return ParseFailureKind.FormatWithParameter;
324 }
325 DateTimeResult result2 = default(DateTimeResult);
326 result2.Init(s);
327 if (!DateTimeParse.TryParse(s, DateTimeFormatInfo.GetInstance(provider), style, ref result2))
328 {
329 result = default(TimeOnly);
330 return ParseFailureKind.FormatWithOriginalDateTime;
331 }
332 if ((result2.flags & (ParseFlags.HaveYear | ParseFlags.HaveMonth | ParseFlags.HaveDay | ParseFlags.HaveDate | ParseFlags.TimeZoneUsed | ParseFlags.TimeZoneUtc | ParseFlags.ParsedMonthName | ParseFlags.CaptureOffset | ParseFlags.UtcSortPattern)) != 0)
333 {
334 result = default(TimeOnly);
335 return ParseFailureKind.WrongParts;
336 }
337 result = new TimeOnly(result2.parsedDate.TimeOfDay.Ticks);
338 return ParseFailureKind.None;
339 }
340
342 {
343 return TryParseExact(s, format, null, DateTimeStyles.None, out result);
344 }
345
347 {
348 return TryParseExactInternal(s, format, provider, style, out result) == ParseFailureKind.None;
349 }
350
352 {
353 if (((uint)style & 0xFFFFFFF8u) != 0)
354 {
355 result = default(TimeOnly);
356 return ParseFailureKind.FormatWithParameter;
357 }
358 if (format.Length == 1)
359 {
360 switch (format[0])
361 {
362 case 'O':
363 case 'o':
364 format = "HH':'mm':'ss'.'fffffff";
365 provider = CultureInfo.InvariantCulture.DateTimeFormat;
366 break;
367 case 'R':
368 case 'r':
369 format = "HH':'mm':'ss";
370 provider = CultureInfo.InvariantCulture.DateTimeFormat;
371 break;
372 }
373 }
374 DateTimeResult result2 = default(DateTimeResult);
375 result2.Init(s);
376 if (!DateTimeParse.TryParseExact(s, format, DateTimeFormatInfo.GetInstance(provider), style, ref result2))
377 {
378 result = default(TimeOnly);
379 return ParseFailureKind.FormatWithOriginalDateTime;
380 }
381 if ((result2.flags & (ParseFlags.HaveYear | ParseFlags.HaveMonth | ParseFlags.HaveDay | ParseFlags.HaveDate | ParseFlags.TimeZoneUsed | ParseFlags.TimeZoneUtc | ParseFlags.ParsedMonthName | ParseFlags.CaptureOffset | ParseFlags.UtcSortPattern)) != 0)
382 {
383 result = default(TimeOnly);
384 return ParseFailureKind.WrongParts;
385 }
386 result = new TimeOnly(result2.parsedDate.TimeOfDay.Ticks);
387 return ParseFailureKind.None;
388 }
389
390 public static bool TryParseExact(ReadOnlySpan<char> s, [NotNullWhen(true)] string?[]? formats, out TimeOnly result)
391 {
392 return TryParseExact(s, formats, null, DateTimeStyles.None, out result);
393 }
394
395 public static bool TryParseExact(ReadOnlySpan<char> s, [NotNullWhen(true)] string?[]? formats, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
396 {
397 return TryParseExactInternal(s, formats, provider, style, out result) == ParseFailureKind.None;
398 }
399
401 {
402 if (((uint)style & 0xFFFFFFF8u) != 0 || formats == null)
403 {
404 result = default(TimeOnly);
405 return ParseFailureKind.FormatWithParameter;
406 }
407 DateTimeFormatInfo instance = DateTimeFormatInfo.GetInstance(provider);
408 for (int i = 0; i < formats.Length; i++)
409 {
410 DateTimeFormatInfo dtfi = instance;
411 string text = formats[i];
412 if (string.IsNullOrEmpty(text))
413 {
414 result = default(TimeOnly);
415 return ParseFailureKind.FormatWithFormatSpecifier;
416 }
417 if (text.Length == 1)
418 {
419 switch (text[0])
420 {
421 case 'O':
422 case 'o':
423 text = "HH':'mm':'ss'.'fffffff";
424 dtfi = CultureInfo.InvariantCulture.DateTimeFormat;
425 break;
426 case 'R':
427 case 'r':
428 text = "HH':'mm':'ss";
429 dtfi = CultureInfo.InvariantCulture.DateTimeFormat;
430 break;
431 }
432 }
433 DateTimeResult result2 = default(DateTimeResult);
434 result2.Init(s);
435 if (DateTimeParse.TryParseExact(s, text, dtfi, style, ref result2) && (result2.flags & (ParseFlags.HaveYear | ParseFlags.HaveMonth | ParseFlags.HaveDay | ParseFlags.HaveDate | ParseFlags.TimeZoneUsed | ParseFlags.TimeZoneUtc | ParseFlags.ParsedMonthName | ParseFlags.CaptureOffset | ParseFlags.UtcSortPattern)) == 0)
436 {
437 result = new TimeOnly(result2.parsedDate.TimeOfDay.Ticks);
438 return ParseFailureKind.None;
439 }
440 }
441 result = default(TimeOnly);
442 return ParseFailureKind.FormatWithOriginalDateTime;
443 }
444
445 public static bool TryParse([NotNullWhen(true)] string? s, out TimeOnly result)
446 {
447 return TryParse(s, null, DateTimeStyles.None, out result);
448 }
449
450 public static bool TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
451 {
452 if (s == null)
453 {
454 result = default(TimeOnly);
455 return false;
456 }
457 return TryParse(s.AsSpan(), provider, style, out result);
458 }
459
460 public static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string? format, out TimeOnly result)
461 {
462 return TryParseExact(s, format, null, DateTimeStyles.None, out result);
463 }
464
465 public static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string? format, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
466 {
467 if (s == null || format == null)
468 {
469 result = default(TimeOnly);
470 return false;
471 }
472 return TryParseExact(s.AsSpan(), format.AsSpan(), provider, style, out result);
473 }
474
475 public static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string?[]? formats, out TimeOnly result)
476 {
477 return TryParseExact(s, formats, null, DateTimeStyles.None, out result);
478 }
479
480 public static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string?[]? formats, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
481 {
482 if (s == null)
483 {
484 result = default(TimeOnly);
485 return false;
486 }
487 return TryParseExact(s.AsSpan(), formats, provider, style, out result);
488 }
489
491 {
492 switch (result)
493 {
494 case ParseFailureKind.FormatWithParameter:
496 case ParseFailureKind.FormatWithOriginalDateTime:
497 throw new FormatException(SR.Format(SR.Format_BadTimeOnly, s.ToString()));
498 case ParseFailureKind.FormatWithFormatSpecifier:
500 default:
501 throw new FormatException(SR.Format(SR.Format_DateTimeOnlyContainsNoneDateParts, s.ToString(), "TimeOnly"));
502 }
503 }
504
505 public string ToLongTimeString()
506 {
507 return ToString("T");
508 }
509
510 public string ToShortTimeString()
511 {
512 return ToString();
513 }
514
515 public override string ToString()
516 {
517 return ToString("t");
518 }
519
520 public string ToString(string? format)
521 {
522 return ToString(format, null);
523 }
524
525 public string ToString(IFormatProvider? provider)
526 {
527 return ToString("t", provider);
528 }
529
530 public string ToString(string? format, IFormatProvider? provider)
531 {
532 if (format == null || format.Length == 0)
533 {
534 format = "t";
535 }
536 if (format.Length == 1)
537 {
538 switch (format[0])
539 {
540 case 'O':
541 case 'o':
542 return string.Create(16, this, delegate(Span<char> destination, TimeOnly value)
543 {
544 bool flag = DateTimeFormat.TryFormatTimeOnlyO(value.Hour, value.Minute, value.Second, value._ticks % 10000000, destination);
545 });
546 case 'R':
547 case 'r':
548 return string.Create(8, this, delegate(Span<char> destination, TimeOnly value)
549 {
550 bool flag2 = DateTimeFormat.TryFormatTimeOnlyR(value.Hour, value.Minute, value.Second, destination);
551 });
552 case 'T':
553 case 't':
554 return DateTimeFormat.Format(ToDateTime(), format, provider);
555 default:
557 }
558 }
559 DateTimeFormat.IsValidCustomTimeFormat(format.AsSpan(), throwOnError: true);
560 return DateTimeFormat.Format(ToDateTime(), format, provider);
561 }
562
563 public bool TryFormat(Span<char> destination, out int charsWritten, ReadOnlySpan<char> format = default(ReadOnlySpan<char>), IFormatProvider? provider = null)
564 {
565 if (format.Length == 0)
566 {
567 format = "t";
568 }
569 if (format.Length == 1)
570 {
571 switch (format[0])
572 {
573 case 'O':
574 case 'o':
576 {
577 charsWritten = 0;
578 return false;
579 }
580 charsWritten = 16;
581 return true;
582 case 'R':
583 case 'r':
585 {
586 charsWritten = 0;
587 return false;
588 }
589 charsWritten = 8;
590 return true;
591 case 'T':
592 case 't':
593 return DateTimeFormat.TryFormat(ToDateTime(), destination, out charsWritten, format, provider);
594 default:
595 charsWritten = 0;
596 return false;
597 }
598 }
599 if (!DateTimeFormat.IsValidCustomTimeFormat(format, throwOnError: false))
600 {
601 charsWritten = 0;
602 return false;
603 }
604 return DateTimeFormat.TryFormat(ToDateTime(), destination, out charsWritten, format, provider);
605 }
606
607 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
609 {
610 return left < right;
611 }
612
613 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
614 static bool IComparisonOperators<TimeOnly, TimeOnly>.operator <=(TimeOnly left, TimeOnly right)
615 {
616 return left <= right;
617 }
618
619 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
621 {
622 return left > right;
623 }
624
625 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
626 static bool IComparisonOperators<TimeOnly, TimeOnly>.operator >=(TimeOnly left, TimeOnly right)
627 {
628 return left >= right;
629 }
630
631 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
632 static bool IEqualityOperators<TimeOnly, TimeOnly>.operator ==(TimeOnly left, TimeOnly right)
633 {
634 return left == right;
635 }
636
637 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
638 static bool IEqualityOperators<TimeOnly, TimeOnly>.operator !=(TimeOnly left, TimeOnly right)
639 {
640 return left != right;
641 }
642
643 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
645 {
646 return Parse(s, provider);
647 }
648
649 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
650 static bool IParseable<TimeOnly>.TryParse([NotNullWhen(true)] string s, IFormatProvider provider, out TimeOnly result)
651 {
652 return TryParse(s, provider, DateTimeStyles.None, out result);
653 }
654
655 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
657 {
658 return Parse(s, provider);
659 }
660
661 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
663 {
664 return TryParse(s, provider, DateTimeStyles.None, out result);
665 }
666
667 [RequiresPreviewFeatures("Generic Math is in preview.", Url = "https://aka.ms/dotnet-warnings/generic-math-preview")]
669 {
670 return left - right;
671 }
672}
static bool IsValidCustomTimeFormat(ReadOnlySpan< char > format, bool throwOnError)
static bool TryFormat(DateTime dateTime, Span< char > destination, out int charsWritten, ReadOnlySpan< char > format, IFormatProvider provider)
static string Format(DateTime dateTime, string format, IFormatProvider provider)
static bool TryFormatTimeOnlyR(int hour, int minute, int second, Span< char > destination)
static bool TryFormatTimeOnlyO(int hour, int minute, int second, long fraction, Span< char > destination)
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)
Definition SR.cs:118
static string Argument_InvalidDateStyles
Definition SR.cs:668
static string Arg_MustBeTimeOnly
Definition SR.cs:260
static string ArgumentOutOfRange_TimeOnlyBadTicks
Definition SR.cs:994
static string Format_BadTimeOnly
Definition SR.cs:1326
static string Argument_BadFormatSpecifier
Definition SR.cs:488
static string Format_DateTimeOnlyContainsNoneDateParts
Definition SR.cs:1328
static string Format_InvalidString
Definition SR.cs:1354
Definition SR.cs:7
static void ThrowArgumentNullException(string name)
static TSelf MinValue
static TSelf MaxValue
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)
TimeSpan TimeOfDay
Definition DateTime.cs:126
static bool TryParseExact(ReadOnlySpan< char > s, ReadOnlySpan< char > format, out TimeOnly result)
Definition TimeOnly.cs:341
static ParseFailureKind TryParseInternal(ReadOnlySpan< char > s, IFormatProvider provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:318
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string?[]? formats, out TimeOnly result)
Definition TimeOnly.cs:475
static TimeOnly MinValue
Definition TimeOnly.cs:11
static bool operator<(TimeOnly left, TimeOnly right)
Definition TimeOnly.cs:151
int CompareTo(TimeOnly value)
Definition TimeOnly.cs:186
static TimeOnly ParseExact(ReadOnlySpan< char > s, string[] formats)
Definition TimeOnly.cs:246
static TimeOnly FromDateTime(DateTime dateTime)
Definition TimeOnly.cs:171
TimeOnly AddTicks(long ticks)
Definition TimeOnly.cs:60
static TimeOnly Parse(ReadOnlySpan< char > s, IFormatProvider? provider=null, DateTimeStyles style=DateTimeStyles.None)
Definition TimeOnly.cs:224
bool IsBetween(TimeOnly start, TimeOnly end)
Definition TimeOnly.cs:112
static bool operator>=(TimeOnly left, TimeOnly right)
Definition TimeOnly.cs:146
string ToShortTimeString()
Definition TimeOnly.cs:510
static bool operator<=(TimeOnly left, TimeOnly right)
Definition TimeOnly.cs:156
TimeOnly AddMinutes(double value)
Definition TimeOnly.cs:102
TimeOnly(int hour, int minute)
Definition TimeOnly.cs:31
static TimeOnly ParseExact(string s, string format)
Definition TimeOnly.cs:276
bool Equals(TimeOnly value)
Definition TimeOnly.cs:204
override string ToString()
Definition TimeOnly.cs:515
static TimeOnly Parse(string s, IFormatProvider? provider, DateTimeStyles style=DateTimeStyles.None)
Definition TimeOnly.cs:267
static bool TryParse([NotNullWhen(true)] string? s, out TimeOnly result)
Definition TimeOnly.cs:445
static TimeOnly ParseExact(ReadOnlySpan< char > s, string[] formats, IFormatProvider? provider, DateTimeStyles style=DateTimeStyles.None)
Definition TimeOnly.cs:251
static TimeOnly FromTimeSpan(TimeSpan timeSpan)
Definition TimeOnly.cs:166
static TimeOnly MaxValue
Definition TimeOnly.cs:13
TimeOnly Add(TimeSpan value)
Definition TimeOnly.cs:82
static ParseFailureKind TryParseExactInternal(ReadOnlySpan< char > s, string[] formats, IFormatProvider provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:400
bool TryFormat(Span< char > destination, out int charsWritten, ReadOnlySpan< char > format=default(ReadOnlySpan< char >), IFormatProvider? provider=null)
Definition TimeOnly.cs:563
static TimeOnly IMinMaxValue< TimeOnly >. MinValue
Definition TimeOnly.cs:26
static TimeOnly ParseExact(ReadOnlySpan< char > s, ReadOnlySpan< char > format, IFormatProvider? provider=null, DateTimeStyles style=DateTimeStyles.None)
Definition TimeOnly.cs:235
TimeOnly Add(TimeSpan value, out int wrappedDays)
Definition TimeOnly.cs:87
TimeOnly(ulong ticks)
Definition TimeOnly.cs:55
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string?[]? formats, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:480
override int GetHashCode()
Definition TimeOnly.cs:218
static TimeSpan operator-(TimeOnly t1, TimeOnly t2)
Definition TimeOnly.cs:161
string ToString(string? format)
Definition TimeOnly.cs:520
static bool operator==(TimeOnly left, TimeOnly right)
Definition TimeOnly.cs:131
static bool TryParseExact(ReadOnlySpan< char > s, [NotNullWhen(true)] string?[]? formats, out TimeOnly result)
Definition TimeOnly.cs:390
TimeOnly(long ticks)
Definition TimeOnly.cs:46
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string? format, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:465
DateTime ToDateTime()
Definition TimeOnly.cs:181
TimeOnly AddHours(double value)
Definition TimeOnly.cs:92
static void ThrowOnError(ParseFailureKind result, ReadOnlySpan< char > s)
Definition TimeOnly.cs:490
readonly long _ticks
Definition TimeOnly.cs:9
TimeOnly AddHours(double value, out int wrappedDays)
Definition TimeOnly.cs:97
TimeOnly(int hour, int minute, int second)
Definition TimeOnly.cs:36
static TimeOnly ParseExact(string s, string[] formats)
Definition TimeOnly.cs:294
static bool operator>(TimeOnly left, TimeOnly right)
Definition TimeOnly.cs:141
string ToString(IFormatProvider? provider)
Definition TimeOnly.cs:525
static TimeOnly ParseExact(string s, string format, IFormatProvider? provider, DateTimeStyles style=DateTimeStyles.None)
Definition TimeOnly.cs:281
static bool operator!=(TimeOnly left, TimeOnly right)
Definition TimeOnly.cs:136
TimeOnly AddMinutes(double value, out int wrappedDays)
Definition TimeOnly.cs:107
string ToLongTimeString()
Definition TimeOnly.cs:505
static bool TryParse(ReadOnlySpan< char > s, out TimeOnly result)
Definition TimeOnly.cs:308
int CompareTo(object? value)
Definition TimeOnly.cs:191
static TimeOnly IMinMaxValue< TimeOnly >. MaxValue
Definition TimeOnly.cs:29
override bool Equals([NotNullWhen(true)] object? value)
Definition TimeOnly.cs:209
TimeOnly AddTicks(long ticks, out int wrappedDays)
Definition TimeOnly.cs:65
static TimeOnly Parse(string s)
Definition TimeOnly.cs:262
static bool TryParseExact(ReadOnlySpan< char > s, ReadOnlySpan< char > format, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:346
static bool TryParse(ReadOnlySpan< char > s, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:313
TimeSpan ToTimeSpan()
Definition TimeOnly.cs:176
string ToString(string? format, IFormatProvider? provider)
Definition TimeOnly.cs:530
static bool TryParseExact([NotNullWhen(true)] string? s, [NotNullWhen(true)] string? format, out TimeOnly result)
Definition TimeOnly.cs:460
static ParseFailureKind TryParseExactInternal(ReadOnlySpan< char > s, ReadOnlySpan< char > format, IFormatProvider provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:351
static bool TryParseExact(ReadOnlySpan< char > s, [NotNullWhen(true)] string?[]? formats, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:395
static TimeOnly ParseExact(string s, string[] formats, IFormatProvider? provider, DateTimeStyles style=DateTimeStyles.None)
Definition TimeOnly.cs:299
static bool TryParse([NotNullWhen(true)] string? s, IFormatProvider? provider, DateTimeStyles style, out TimeOnly result)
Definition TimeOnly.cs:450
TimeOnly(int hour, int minute, int second, int millisecond)
Definition TimeOnly.cs:41
readonly long _ticks
Definition TimeSpan.cs:27