From 1c16703190d181fa053690951df32e82f8f68dcb Mon Sep 17 00:00:00 2001 From: Vladimir Pecanac Date: Sat, 15 Aug 2026 23:02:15 +0200 Subject: [PATCH] Add DateOnly.ToDateTime reverse conversion and target .NET 10 --- .../DateOnlyAndTimeOnlyInCSharpExample.csproj | 2 +- .../Program.cs | 6 ++++++ .../Tests/DateOnlyTests.cs | 17 +++++++++++++++++ .../Tests/Tests.csproj | 10 +++++----- 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/DateOnlyAndTimeOnlyInCSharpExample/DateOnlyAndTimeOnlyInCSharpExample.csproj b/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/DateOnlyAndTimeOnlyInCSharpExample/DateOnlyAndTimeOnlyInCSharpExample.csproj index 74abf5c976..dfb40caafc 100644 --- a/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/DateOnlyAndTimeOnlyInCSharpExample/DateOnlyAndTimeOnlyInCSharpExample.csproj +++ b/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/DateOnlyAndTimeOnlyInCSharpExample/DateOnlyAndTimeOnlyInCSharpExample.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net10.0 enable enable diff --git a/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/DateOnlyAndTimeOnlyInCSharpExample/Program.cs b/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/DateOnlyAndTimeOnlyInCSharpExample/Program.cs index 7154c7263f..f43160f57b 100644 --- a/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/DateOnlyAndTimeOnlyInCSharpExample/Program.cs +++ b/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/DateOnlyAndTimeOnlyInCSharpExample/Program.cs @@ -60,6 +60,12 @@ public static void DemonstrateFromDateTime() Console.WriteLine(dateOnly); Console.WriteLine(timeOnly); + + var backToDateTime = dateOnly.ToDateTime(timeOnly); + var atMidnight = dateOnly.ToDateTime(TimeOnly.MinValue); + + Console.WriteLine(backToDateTime); + Console.WriteLine(atMidnight); } public static void DemonstrateBasicOperators() diff --git a/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/Tests/DateOnlyTests.cs b/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/Tests/DateOnlyTests.cs index fecbd41c64..d425438436 100644 --- a/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/Tests/DateOnlyTests.cs +++ b/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/Tests/DateOnlyTests.cs @@ -85,6 +85,23 @@ public void CanConvertFromDateTime() Assert.Equal(1, dateOnly.Day); } + [Fact] + public void CanConvertToDateTime() + { + // Arrange. + var dateOnly = new DateOnly(2022, 1, 1); + var timeOnly = new TimeOnly(11, 30); + + // Act. + var dateTime = dateOnly.ToDateTime(timeOnly); + var atMidnight = dateOnly.ToDateTime(TimeOnly.MinValue); + + // Assert. + Assert.Equal(new DateTime(2022, 1, 1, 11, 30, 0), dateTime); + Assert.Equal(new DateTime(2022, 1, 1, 0, 0, 0), atMidnight); + Assert.Equal(DateTimeKind.Unspecified, dateTime.Kind); + } + [Fact] public void CanUseLessThanOperator() { diff --git a/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/Tests/Tests.csproj b/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/Tests/Tests.csproj index 9f77f5f615..909198f810 100644 --- a/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/Tests/Tests.csproj +++ b/dotnet-datetime/DateOnlyAndTimeOnlyInCSharp/Tests/Tests.csproj @@ -1,20 +1,20 @@ - net6.0 + net10.0 enable false - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all