@@ -12,7 +12,7 @@ namespace R8.DateTimeLocalization;
12
12
/// Represents an instant in time, typically expressed as a date and time of day according to a particular calendar and
13
13
/// time zone.
14
14
/// </summary>
15
- [ JsonConverter ( typeof ( DateTimeLocalJsonConverter ) ) ]
15
+ [ JsonConverter ( typeof ( CustomJsonConverter ) ) ]
16
16
public readonly struct TimezoneDateTime : IComparable , IComparable < TimezoneDateTime > , IEquatable < TimezoneDateTime > , IFormattable
17
17
{
18
18
private readonly ushort _timezone ;
@@ -188,7 +188,7 @@ public DateTime GetDateTime()
188
188
[ MethodImpl ( MethodImplOptions . AggressiveInlining ) ]
189
189
public ITimezone GetTimezone ( )
190
190
{
191
- return LocalTimezone . Mappings [ _timezone ] . GetTimezone ( ) ! ;
191
+ return LocalTimezone . Mappings [ _timezone ] . GetTimezone ( ) ;
192
192
}
193
193
194
194
/// <summary>
@@ -223,7 +223,7 @@ public TimezoneDateTime GetStartOfHour()
223
223
var currentYear = zoned ? . Year ?? dateTime . Year ;
224
224
var currentHour = zoned ? . Hour ?? dateTime . Hour ;
225
225
226
- return new TimezoneDateTime ( currentYear , currentMonth , currentDay , currentHour , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
226
+ return new TimezoneDateTime ( currentYear , currentMonth , currentDay , currentHour , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
227
227
}
228
228
229
229
/// <summary>
@@ -243,7 +243,7 @@ public TimezoneDateTime GetEndOfHour()
243
243
var currentYear = zoned ? . Year ?? dateTime . Year ;
244
244
var currentHour = zoned ? . Hour ?? dateTime . Hour ;
245
245
246
- return new TimezoneDateTime ( currentYear , currentMonth , currentDay , currentHour , 59 , 59 , 9999999 , timezoneInfo . GetTimezone ( ) ! ) ;
246
+ return new TimezoneDateTime ( currentYear , currentMonth , currentDay , currentHour , 59 , 59 , 9999999 , timezoneInfo . GetTimezone ( ) ) ;
247
247
}
248
248
249
249
/// <summary>
@@ -264,7 +264,7 @@ public TimezoneDateTime GetStartOfMinute()
264
264
var currentHour = zoned ? . Hour ?? dateTime . Hour ;
265
265
var currentMinute = zoned ? . Minute ?? dateTime . Minute ;
266
266
267
- return new TimezoneDateTime ( currentYear , currentMonth , currentDay , currentHour , currentMinute , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
267
+ return new TimezoneDateTime ( currentYear , currentMonth , currentDay , currentHour , currentMinute , 0 , timezoneInfo . GetTimezone ( ) ) ;
268
268
}
269
269
270
270
/// <summary>
@@ -285,7 +285,7 @@ public TimezoneDateTime GetEndOfMinute()
285
285
var currentHour = zoned ? . Hour ?? dateTime . Hour ;
286
286
var currentMinute = zoned ? . Minute ?? dateTime . Minute ;
287
287
288
- return new TimezoneDateTime ( currentYear , currentMonth , currentDay , currentHour , currentMinute , 59 , 9999999 , timezoneInfo . GetTimezone ( ) ! ) ;
288
+ return new TimezoneDateTime ( currentYear , currentMonth , currentDay , currentHour , currentMinute , 59 , 9999999 , timezoneInfo . GetTimezone ( ) ) ;
289
289
}
290
290
291
291
/// <summary>
@@ -305,7 +305,7 @@ public TimezoneDateTime GetStartOfDay()
305
305
var currentMonth = zoned ? . Month ?? dateTime . Month ;
306
306
var currentYear = zoned ? . Year ?? dateTime . Year ;
307
307
308
- return new TimezoneDateTime ( currentYear , currentMonth , currentDay , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
308
+ return new TimezoneDateTime ( currentYear , currentMonth , currentDay , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
309
309
}
310
310
311
311
/// <summary>
@@ -324,12 +324,12 @@ public TimezoneDateTime GetStartOfNextDay()
324
324
var daysInMonth = timezoneInfo . Clock . Calendar . GetDaysInMonth ( currentYear , currentMonth ) ;
325
325
if ( currentDay == daysInMonth )
326
326
{
327
- if ( currentMonth == 12 ) return new TimezoneDateTime ( currentYear + 1 , 1 , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
327
+ if ( currentMonth == 12 ) return new TimezoneDateTime ( currentYear + 1 , 1 , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
328
328
329
- return new TimezoneDateTime ( currentYear , currentMonth + 1 , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
329
+ return new TimezoneDateTime ( currentYear , currentMonth + 1 , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
330
330
}
331
331
332
- return new TimezoneDateTime ( currentYear , currentMonth , currentDay + 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
332
+ return new TimezoneDateTime ( currentYear , currentMonth , currentDay + 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
333
333
}
334
334
335
335
/// <summary>
@@ -348,7 +348,7 @@ public TimezoneDateTime GetEndOfDay()
348
348
var currentMonth = zoned ? . Month ?? dateTime . Month ;
349
349
var currentYear = zoned ? . Year ?? dateTime . Year ;
350
350
351
- return new TimezoneDateTime ( currentYear , currentMonth , currentDay , 23 , 59 , 59 , 9999999 , timezoneInfo . GetTimezone ( ) ! ) ;
351
+ return new TimezoneDateTime ( currentYear , currentMonth , currentDay , 23 , 59 , 59 , 9999999 , timezoneInfo . GetTimezone ( ) ) ;
352
352
}
353
353
354
354
/// <summary>
@@ -366,7 +366,7 @@ public TimezoneDateTime GetStartOfMonth()
366
366
var currentMonth = zoned ? . Month ?? dateTime . Month ;
367
367
var currentYear = zoned ? . Year ?? dateTime . Year ;
368
368
369
- return new TimezoneDateTime ( currentYear , currentMonth , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
369
+ return new TimezoneDateTime ( currentYear , currentMonth , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
370
370
}
371
371
372
372
/// <summary>
@@ -385,7 +385,7 @@ public TimezoneDateTime GetEndOfMonth()
385
385
var currentYear = zoned ? . Year ?? dateTime . Year ;
386
386
var daysInMonth = timezoneInfo . Clock . Calendar . GetDaysInMonth ( currentYear , currentMonth ) ;
387
387
388
- return new TimezoneDateTime ( currentYear , currentMonth , daysInMonth , 23 , 59 , 59 , 9999999 , timezoneInfo . GetTimezone ( ) ! ) ;
388
+ return new TimezoneDateTime ( currentYear , currentMonth , daysInMonth , 23 , 59 , 59 , 9999999 , timezoneInfo . GetTimezone ( ) ) ;
389
389
}
390
390
391
391
/// <summary>
@@ -401,9 +401,9 @@ public TimezoneDateTime GetStartOfNextMonth()
401
401
var currentMonth = zoned ? . Month ?? dateTime . Month ;
402
402
var currentYear = zoned ? . Year ?? dateTime . Year ;
403
403
if ( currentMonth == 12 )
404
- return new TimezoneDateTime ( currentYear + 1 , 1 , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
404
+ return new TimezoneDateTime ( currentYear + 1 , 1 , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
405
405
406
- return new TimezoneDateTime ( currentYear , currentMonth + 1 , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
406
+ return new TimezoneDateTime ( currentYear , currentMonth + 1 , 1 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
407
407
}
408
408
409
409
/// <summary>
@@ -413,7 +413,7 @@ public TimezoneDateTime GetStartOfNextMonth()
413
413
public TimezoneDateTime GetStartOfWeek ( )
414
414
{
415
415
var firstDayOfWeek = GetFirstDayOfWeek ( out var timezoneInfo ) ;
416
- return new TimezoneDateTime ( firstDayOfWeek . Year , firstDayOfWeek . Month , firstDayOfWeek . Day , 0 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
416
+ return new TimezoneDateTime ( firstDayOfWeek . Year , firstDayOfWeek . Month , firstDayOfWeek . Day , 0 , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
417
417
}
418
418
419
419
private ZonedDateTime GetFirstDayOfWeek ( out LocalTimezoneInfo timezoneInfo )
@@ -446,7 +446,7 @@ public TimezoneDateTime GetEndOfWeek()
446
446
447
447
var firstDayOfWeek = GetFirstDayOfWeek ( out var timezone ) ;
448
448
var lastDayOfWeek = firstDayOfWeek . Plus ( Duration . FromDays ( lastDayIndex ) ) ;
449
- return new TimezoneDateTime ( lastDayOfWeek . Year , lastDayOfWeek . Month , lastDayOfWeek . Day , 23 , 59 , 59 , 9999999 , timezone . GetTimezone ( ) ! ) ;
449
+ return new TimezoneDateTime ( lastDayOfWeek . Year , lastDayOfWeek . Month , lastDayOfWeek . Day , 23 , 59 , 59 , 9999999 , timezone . GetTimezone ( ) ) ;
450
450
}
451
451
452
452
/// <summary>
@@ -473,12 +473,12 @@ public TimezoneDateTime GetStartOfNextWeek()
473
473
var dayInNextMonth = firstDayOfNextWeek - daysInMonth ;
474
474
var nextMonth = currentMonth + 1 ;
475
475
if ( nextMonth == 13 )
476
- return new TimezoneDateTime ( currentYear + 1 , 1 , dayInNextMonth , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
476
+ return new TimezoneDateTime ( currentYear + 1 , 1 , dayInNextMonth , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
477
477
478
- return new TimezoneDateTime ( currentYear , currentMonth + 1 , dayInNextMonth , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
478
+ return new TimezoneDateTime ( currentYear , currentMonth + 1 , dayInNextMonth , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
479
479
}
480
480
481
- return new TimezoneDateTime ( currentYear , currentMonth , firstDayOfNextWeek , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ! ) ;
481
+ return new TimezoneDateTime ( currentYear , currentMonth , firstDayOfNextWeek , 0 , 0 , 0 , timezoneInfo . GetTimezone ( ) ) ;
482
482
}
483
483
484
484
/// <summary>
@@ -643,7 +643,7 @@ public int CompareTo(object? obj)
643
643
return 1 ;
644
644
if ( obj is TimezoneDateTime tz )
645
645
return Compare ( this , tz ) ;
646
- throw new ArgumentException ( "Argument must be DateTimeLocal " ) ;
646
+ throw new ArgumentException ( "Argument must be TimezoneDateTime " ) ;
647
647
}
648
648
649
649
public int CompareTo ( TimezoneDateTime value )
@@ -953,7 +953,7 @@ public bool IsToday()
953
953
return currentYear == today . Year && currentMonth == today . Month && currentDay == today . Day ;
954
954
}
955
955
956
- public class DateTimeLocalJsonConverter : JsonConverter < TimezoneDateTime >
956
+ public class CustomJsonConverter : JsonConverter < TimezoneDateTime >
957
957
{
958
958
public override TimezoneDateTime Read ( ref Utf8JsonReader reader , Type typeToConvert , JsonSerializerOptions options )
959
959
{
0 commit comments