Tính khoảng cách 2 ngày: DateTime trừ nhau ra TimeSpan. So sánh ngày: toán tử <, >, ==.
Ví dụ minh họa
using System;
class Program
{
static void Main()
{
DateTime date1 = new DateTime(2018, 9, 15);
DateTime date2 = new DateTime(2018, 9, 28);
Console.WriteLine($"Date 1: {date1:dd/MM/yyyy}");
Console.WriteLine($"Date 2: {date2:dd/MM/yyyy}");
// Hiệu 2 ngày
TimeSpan diff = date2 - date1;
Console.WriteLine($"\nKhoảng cách: {diff.TotalDays} ngày");
Console.WriteLine($" {diff.Days} ngày {diff.Hours} giờ {diff.Minutes} phút");
// So sánh
if (date1 < date2)
Console.WriteLine($"\n{date1:dd/MM/yyyy} trước {date2:dd/MM/yyyy}");
else if (date1 > date2)
Console.WriteLine($"\n{date1:dd/MM/yyyy} sau {date2:dd/MM/yyyy}");
else
Console.WriteLine("\nHai ngày trùng nhau");
// Các tính toán khác
Console.WriteLine($"\nThêm 10 ngày vào Date1: {date1.AddDays(10):dd/MM/yyyy}");
Console.WriteLine($"Ngày trong tuần Date1: {date1.DayOfWeek}");
Console.WriteLine($"Ngày trong năm Date1: {date1.DayOfYear}");
// DateOnly (.NET 6+) - chỉ ngày, không giờ
// var d1 = DateOnly.FromDateTime(date1);
// var d2 = DateOnly.FromDateTime(date2);
// int days = (d2 - d1).Days;
}
}
Kết quả đầu ra
Date 1: 15/09/2018
Date 2: 28/09/2018
Khoảng cách: 13 ngày
13 ngày 0 giờ 0 phút
15/09/2018 trước 28/09/2018
Thêm 10 ngày vào Date1: 25/09/2018
Ngày trong tuần Date1: Saturday
Ngày trong năm Date1: 258
Lưu ý: TimeSpan.TotalDays là double (có thể lẻ nếu có giờ/phút). TimeSpan.Days là int phần nguyên. .NET 6+ có DateOnly, TimeOnly cho date/time thuần túy.