diff --git a/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/CompareDateTimeInCSharp.csproj b/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/CompareDateTimeInCSharp.csproj
index f02677bf64..dfb40caafc 100644
--- a/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/CompareDateTimeInCSharp.csproj
+++ b/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/CompareDateTimeInCSharp.csproj
@@ -2,7 +2,7 @@
Exe
- net7.0
+ net10.0
enable
enable
diff --git a/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/Examples.cs b/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/Examples.cs
index d17c69ac41..f7590a2790 100644
--- a/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/Examples.cs
+++ b/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/Examples.cs
@@ -8,12 +8,7 @@ public static bool IsDateInSameTimeZone()
var secondDate = new DateTime(2021, 05, 06, 12, 0, 0, DateTimeKind.Utc);
var firstDateAsUtc = firstDate.ToUniversalTime();
- if (firstDateAsUtc.Equals(secondDate))
- {
- return true;
- }
-
- return false;
+ return firstDateAsUtc.Equals(secondDate);
}
public static bool IsDatePrecisionSame()
@@ -21,12 +16,21 @@ public static bool IsDatePrecisionSame()
var firstDate = new DateTime(2021, 05, 06, 12, 0, 0);
var secondDate = new DateTime(2021, 05, 06, 12, 0, 0, 500);
- if (firstDate == secondDate)
- {
- return true;
- }
+ return firstDate == secondDate;
+ }
+
+ public static (bool AreClose, bool SameDay, bool SameDayViaDateOnly) CompareWithTolerance()
+ {
+ var firstDate = new DateTime(2021, 05, 06, 12, 0, 0);
+ var secondDate = new DateTime(2021, 05, 06, 12, 0, 0, 500);
+
+ var tolerance = TimeSpan.FromMilliseconds(1);
+ var areClose = (firstDate - secondDate).Duration() <= tolerance;
+
+ var sameDay = firstDate.Date == secondDate.Date;
+ var sameDayViaDateOnly = DateOnly.FromDateTime(firstDate) == DateOnly.FromDateTime(secondDate);
- return false;
+ return (areClose, sameDay, sameDayViaDateOnly);
}
}
}
diff --git a/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/Program.cs b/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/Program.cs
index a35515f33f..98154d6c45 100644
--- a/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/Program.cs
+++ b/dotnet-datetime/CompareDateTimeInCSharp/CompareDateTimeInCSharp/Program.cs
@@ -46,6 +46,12 @@ static void Main(string[] args)
{
Console.WriteLine("Date precisions are different.");
}
+
+ // Comparing DateTime values with a tolerance, and comparing by date only
+ var (areClose, sameDay, sameDayViaDateOnly) = Examples.CompareWithTolerance();
+ Console.WriteLine($"Within 1ms tolerance: {areClose}");
+ Console.WriteLine($"Same day (Date property): {sameDay}");
+ Console.WriteLine($"Same day (DateOnly): {sameDayViaDateOnly}");
}
private static void ShowResult(DateTime firstDate, DateTime secondDate, int result)
diff --git a/dotnet-datetime/CompareDateTimeInCSharp/Tests/Tests.csproj b/dotnet-datetime/CompareDateTimeInCSharp/Tests/Tests.csproj
index 5e9fe2925b..519832e760 100644
--- a/dotnet-datetime/CompareDateTimeInCSharp/Tests/Tests.csproj
+++ b/dotnet-datetime/CompareDateTimeInCSharp/Tests/Tests.csproj
@@ -1,7 +1,7 @@
- net7.0
+ net10.0
enable
enable