Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Tính khoảng cách giữa hai ngày trong C#


Giới thiệu

Phương thức DateTime.Subtract() trả về một TimeSpan biểu diễn khoảng thời gian giữa hai mốc thời gian.

Ví dụ cơ bản

DateTime date1 = new DateTime(2018, 8, 27);
DateTime date2 = new DateTime(2018, 8, 28);
TimeSpan t = date2.Subtract(date1);

Ví dụ hoàn chỉnh

using System;

public class Demo
{
    public static void Main()
    {
        DateTime date1 = new DateTime(2018, 8, 27);
        DateTime date2 = new DateTime(2018, 8, 28);

        TimeSpan t = date2.Subtract(date1);
        Console.WriteLine(t);                    // 1.00:00:00
        Console.WriteLine("Days (Difference) = {0}", t.TotalDays);     // 1
        Console.WriteLine("Minutes (Difference) = {0}", t.TotalMinutes); // 1440
    }
}

Kết quả

1.00:00:00
Days (Difference) = 1
Minutes (Difference) = 1440

Các thuộc tính TimeSpan quan trọng

Thuộc tínhMô tảVí dụ (1 ngày)
DaysSố ngày nguyên (int)1
TotalDaysTổng số ngày (double)1.0
HoursGiờ (0-23)0
TotalHoursTổng giờ (double)24.0
MinutesPhút (0-59)0
TotalMinutesTổng phút (double)1440

Lưu ý quan trọng

  • Luôn dùng TotalDays, TotalHours, ... cho tính toán chính xác (kết quả double).
  • Days, Hours, ... chỉ là phần nguyên của thành phần đó.
  • Có thể trừ trực tiếp: TimeSpan t = date2 - date1; (toán tử nạp chồng).
  • Kết quả có thể âm nếu date2 < date1.

Ví dụ thực tế: Tính tuổi

DateTime birth = new DateTime(1990, 5, 15);
DateTime today = DateTime.Today;
int age = today.Year - birth.Year;
if (birth.Date > today.AddYears(-age)) age--;
Console.WriteLine($"Tuổi: {age}");