public static void ComparisonsTest() { DateOnly dateOnly1 = DateOnly.FromDateTime(DateTime.Today); DateOnly dateOnly2 = DateOnly.FromDateTime(DateTime.Today); DateOnly dateOnly3 = dateOnly1.AddYears(-10); Assert.Equal(0, dateOnly1.CompareTo(dateOnly2)); Assert.True(dateOnly1.Equals(dateOnly2)); Assert.True(dateOnly1.Equals((object)dateOnly2)); Assert.Equal(0, dateOnly2.CompareTo(dateOnly1)); Assert.True(dateOnly2.Equals(dateOnly1)); Assert.True(dateOnly2.Equals((object)dateOnly1)); Assert.Equal(1, dateOnly1.CompareTo(dateOnly3)); Assert.False(dateOnly1.Equals(dateOnly3)); Assert.False(dateOnly1.Equals((object)dateOnly3)); Assert.Equal(-1, dateOnly3.CompareTo(dateOnly1)); Assert.False(dateOnly3.Equals(dateOnly1)); Assert.False(dateOnly3.Equals((object)dateOnly1)); Assert.Equal(0, dateOnly1.CompareTo((object)dateOnly2)); Assert.Equal(0, dateOnly2.CompareTo((object)dateOnly1)); Assert.Equal(1, dateOnly1.CompareTo((object)dateOnly3)); Assert.Equal(-1, dateOnly3.CompareTo((object)dateOnly1)); Assert.Equal(1, dateOnly1.CompareTo(null)); Assert.Throws <ArgumentException>(() => dateOnly1.CompareTo(new object())); Assert.False(dateOnly3.Equals(new object())); }
public static int YearsTo(this DateOnly start, DateOnly end) { int result = end.Year - start.Year; if (end < start.AddYears(result)) { result--; } return(result); }
public static void AddYearsTest() { DateOnly dateOnly = new DateOnly(2021, 1, 31); for (int i = 2021; i < 2040; i++) { Assert.Equal(i, dateOnly.Year); dateOnly = dateOnly.AddYears(1); } for (int i = dateOnly.Year; i > 2020; i--) { Assert.Equal(i, dateOnly.Year); dateOnly = dateOnly.AddYears(-1); } DateTime dt = DateTime.Today; dateOnly = DateOnly.FromDayNumber((int)(dt.Ticks / TimeSpan.TicksPerDay)); Assert.Equal(dt.Year, dateOnly.Year); Assert.Equal(dt.Month, dateOnly.Month); Assert.Equal(dt.Day, dateOnly.Day); dt = dt.AddYears(1); dateOnly = dateOnly.AddYears(1); Assert.Equal(dt.Year, dateOnly.Year); dt = dt.AddYears(50); dateOnly = dateOnly.AddYears(50); Assert.Equal(dt.Year, dateOnly.Year); dt = dt.AddYears(-150); dateOnly = dateOnly.AddYears(-150); Assert.Equal(dt.Year, dateOnly.Year); Assert.Throws <ArgumentOutOfRangeException>(() => DateOnly.MinValue.AddYears(-1)); Assert.Throws <ArgumentOutOfRangeException>(() => DateOnly.MaxValue.AddYears(1)); }
/// <summary> /// 1 years from the provided date /// </summary> public static DateOnly YearFrom(DateOnly date) { return(date.AddYears(1)); }