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

Trừ hai TimeSpan trong C#


Giới thiệu

Phương thức Subtract() của TimeSpan trừ một TimeSpan khác và trả về TimeSpan mới. Tương đương toán tử -.

Ví dụ cơ bản

TimeSpan t1 = TimeSpan.FromMinutes(2);
TimeSpan t2 = TimeSpan.FromMinutes(1);
TimeSpan res = t1.Subtract(t2); // 1 phút

Ví dụ hoàn chỉnh

using System;

public class Demo
{
    public static void Main()
    {
        TimeSpan t1 = TimeSpan.FromMinutes(2);
        TimeSpan t2 = TimeSpan.FromMinutes(1);
        Console.WriteLine("First TimeSpan: " + t1);
        Console.WriteLine("Second TimeSpan: " + t2);
        TimeSpan res = t1.Subtract(t2);
        Console.WriteLine("Resultant TimeSpan: " + res);
    }
}

Kết quả

First TimeSpan: 00:02:00
Second TimeSpan: 00:01:00
Resultant TimeSpan: 00:01:00

Toán tử trừ (-)

TimeSpan res = t1 - t2; // Tương đương t1.Subtract(t2)

Lưu ý

  • TimeSpan immutable -> trả về instance mới.
  • Kết quả có thể âm (nếu t1 < t2).
  • Kết quả vượt quá MinValue/MaxValue -> OverflowException.
  • Subtract cũng có nạp chồng nhận DateTime: date.Subtract(timeSpan).

Ví dụ thực tế: Tính thời gian còn lại

TimeSpan totalTime = TimeSpan.FromHours(2);
TimeSpan elapsed = stopwatch.Elapsed;
TimeSpan remaining = totalTime - elapsed;
if (remaining > TimeSpan.Zero)
{
    Console.WriteLine($"Còn lại: {remaining}");
}
else
{
    Console.WriteLine("Hết giờ!");
}