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ính | Mô tả | Ví dụ (1 ngày) |
|---|---|---|
Days | Số ngày nguyên (int) | 1 |
TotalDays | Tổng số ngày (double) | 1.0 |
Hours | Giờ (0-23) | 0 |
TotalHours | Tổng giờ (double) | 24.0 |
Minutes | Phút (0-59) | 0 |
TotalMinutes | Tổ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}");