Giới thiệu
TimeSpan cung cấp các phương thức factory tĩnh From* để tạo TimeSpan từ các đơn vị thời gian khác nhau: Days, Hours, Minutes, Seconds, Milliseconds, Ticks.
Các phương thức From*
| Phương thức | Tham số | Ví dụ |
|---|---|---|
FromDays(double) | Số ngày (có thể lẻ) | TimeSpan.FromDays(1.5) = 1.12:00:00 |
FromHours(double) | Số giờ | TimeSpan.FromHours(2.5) = 02:30:00 |
FromMinutes(double) | Số phút | TimeSpan.FromMinutes(90) = 01:30:00 |
FromSeconds(double) | Số giây | TimeSpan.FromSeconds(100) = 00:01:40 |
FromMilliseconds(double) | Số milliseconds | TimeSpan.FromMilliseconds(1500) = 00:00:01.5 |
FromTicks(long) | Số ticks (100ns) | TimeSpan.FromTicks(10000000) = 00:00:01 |
Ví dụ hoàn chỉnh
using System;
public class Demo
{
public static void Main()
{
TimeSpan t1 = TimeSpan.FromDays(1);
TimeSpan t2 = TimeSpan.FromHours(1);
TimeSpan t3 = TimeSpan.FromMinutes(1);
Console.WriteLine(t1); // 1.00:00:00
Console.WriteLine(t2); // 01:00:00
Console.WriteLine(t3); // 00:01:00
}
}
Kết quả
1.00:00:00 01:00:00 00:01:00
Lưu ý quan trọng
- Tham số là
double(trừ FromTicks) -> cho phép giá trị lẻ:FromMinutes(1.5)= 1 phút 30 giây. - Giá trị âm được chấp nhận -> tạo TimeSpan âm.
- Giá trị quá lớn -> ném
OverflowException. - Độ chính xác: double có độ chính xác ~15 chữ số, đủ cho hầu hết trường hợp.
Ví dụ thực tế: Timeout cấu hình
// Đọc timeout từ config (giây)
int timeoutSeconds = config.GetValue("TimeoutSeconds", 30);
TimeSpan timeout = TimeSpan.FromSeconds(timeoutSeconds);
// Hoặc từ milliseconds
int timeoutMs = config.GetValue("TimeoutMs", 5000);
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMs);