}
// Constructs a DateTimeOffset from a given year, month, day, hour,
- // minute, second, millsecond and offset
+ // minute, second, millisecond and offset
public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, TimeSpan offset)
{
_offsetMinutes = ValidateOffset(offset);
}
// Constructs a DateTimeOffset from a given year, month, day, hour,
- // minute, second, millsecond, Calendar and offset.
+ // minute, second, millisecond, Calendar and offset.
public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, Calendar calendar, TimeSpan offset)
{
_offsetMinutes = ValidateOffset(offset);
public TimeSpan Offset => new TimeSpan(0, _offsetMinutes, 0);
+ /// <summary>
+ /// Gets the total number of minutes representing the time's offset from Coordinated Universal Time (UTC).
+ /// </summary>
+ public int TotalOffsetMinutes => _offsetMinutes;
+
// Returns the second part of this DateTimeOffset. The returned value is
// an integer between 0 and 59.
//
public int Second { get { throw null; } }
public long Ticks { get { throw null; } }
public System.TimeSpan TimeOfDay { get { throw null; } }
+ public int TotalOffsetMinutes { get { throw null; } }
public System.DateTime UtcDateTime { get { throw null; } }
public static System.DateTimeOffset UtcNow { get { throw null; } }
public long UtcTicks { get { throw null; } }
Assert.Equal(expectedString, actual.ToString("u"));
}
+ [Theory]
+ [InlineData(5)]
+ [InlineData(-5)]
+ [InlineData(0)]
+ [InlineData(14 * 60)] // max offset
+ [InlineData(-14 * 60)] // min offset
+ public static void TotalNumberOfMinutesTest(int minutesCount)
+ {
+ DateTimeOffset dto = new DateTimeOffset(new DateTime(2022, 11, 12), TimeSpan.FromMinutes(minutesCount));
+ Assert.Equal(minutesCount, dto.TotalOffsetMinutes);
+ Assert.Equal(minutesCount, dto.Offset.TotalMinutes);
+ }
+
+ [Fact]
+ public static void TotalNumberOfMinutesNowTest()
+ {
+ DateTimeOffset dto = DateTimeOffset.UtcNow;
+ Assert.Equal(0, dto.TotalOffsetMinutes);
+
+ dto = DateTimeOffset.Now;
+ Assert.Equal(dto.Offset.TotalMinutes, dto.TotalOffsetMinutes);
+ }
+
[Fact]
public static void TryFormat_ToString_EqualResults()
{