Giới thiệu
Phương thức TimeSpan.FromMilliseconds() trong C# tạo một đối tượng TimeSpan đại diện cho khoảng thời gian được chỉ định bằng mili-giây (milliseconds).
Cú pháp
public static TimeSpan FromMilliseconds (double val);
Tham số val là số mili-giây (có thể là số thực).
Ví dụ 1: Tạo TimeSpan từ nhiều nguồn
using System;
public class Demo {
public static void Main() {
TimeSpan span1 = TimeSpan.FromDays(15);
TimeSpan span2 = new TimeSpan(5, 15, 30); // 5h 15p 30s
TimeSpan span3 = TimeSpan.FromHours(5);
TimeSpan span4 = TimeSpan.FromMilliseconds(876876876.1);
Console.WriteLine("TimeSpan1 = " + span1);
Console.WriteLine("TimeSpan2 = " + span2);
Console.WriteLine("TimeSpan3 = " + span3);
Console.WriteLine("TimeSpan4 = " + span4);
Console.WriteLine("So sánh span1 vs span2 = " + TimeSpan.Compare(span1, span2));
Console.WriteLine("So sánh span2 vs span3 = " + TimeSpan.Compare(span2, span3));
Console.WriteLine("So sánh span1 vs span3 = " + TimeSpan.Compare(span1, span3));
Console.WriteLine("So sánh span3 vs span4 = " + TimeSpan.Compare(span3, span4));
}
}
Đầu ra ví dụ 1
TimeSpan1 = 15.00:00:00 TimeSpan2 = 05:15:30 TimeSpan3 = 05:00:00 TimeSpan4 = 10.03:34:36.8760000 So sánh span1 vs span2 = 1 So sánh span2 vs span3 = 1 So sánh span1 vs span3 = 1 So sánh span3 vs span4 = -1
Ví dụ 2: Các giá trị nhỏ và lớn
using System;
public class Demo {
public static void Main() {
TimeSpan span1 = TimeSpan.FromHours(0.78787);
TimeSpan span2 = new TimeSpan(10, 30, 40);
TimeSpan span3 = TimeSpan.FromHours(5);
TimeSpan span4 = TimeSpan.FromMilliseconds(1);
Console.WriteLine("TimeSpan1 = " + span1);
Console.WriteLine("TimeSpan2 = " + span2);
Console.WriteLine("TimeSpan3 = " + span3);
Console.WriteLine("TimeSpan4 = " + span4);
Console.WriteLine("So sánh span1 vs span2 = " + TimeSpan.Compare(span1, span2));
Console.WriteLine("So sánh span2 vs span3 = " + TimeSpan.Compare(span2, span3));
Console.WriteLine("So sánh span1 vs span3 = " + TimeSpan.Compare(span1, span3));
Console.WriteLine("So sánh span3 vs span4 = " + TimeSpan.Compare(span3, span4));
}
}
Đầu ra ví dụ 2
TimeSpan1 = 00:47:16.3320000 TimeSpan2 = 10:30:40 TimeSpan3 = 05:00:00 TimeSpan4 = 00:00:00.0010000 So sánh span1 vs span2 = -1 So sánh span2 vs span3 = 1 So sánh span1 vs span3 = -1 So sánh span3 vs span4 = 1
Các phương thức From* liên quan
| Phương thức | Đơn vị đầu vào | Ví dụ |
|---|---|---|
| FromDays | Ngày (double) | FromDays(1.5) → 1.12:00:00 |
| FromHours | Giờ (double) | FromHours(2.5) → 02:30:00 |
| FromMinutes | Phút (double) | FromMinutes(90) → 01:30:00 |
| FromSeconds | Giây (double) | FromSeconds(3661) → 01:01:01 |
| FromMilliseconds | Mili-giây (double) | FromMilliseconds(1500) → 00:00:01.5000000 |
| FromTicks | Ticks (long, 100ns) | FromTicks(10000000) → 00:00:01 |
Lưu ý quan trọng
- Tham số
doublecho phép giá trị phân số mili-giây (ví dụ 1.5 ms). - Giá trị quá lớn (>
TimeSpan.MaxValue~ 10.675.199 ngày) némOverflowException. TimeSpancó độ phân giải 100 nanos (1 tick = 100ns). Mili-giây được làm tròn đến tick gần nhất.- Dùng
TimeSpan.Compare,==,<,>để so sánh.
Ứng dụng thực tế
- Đo hiệu năng:
var sw = Stopwatch.StartNew(); ... sw.ElapsedMilliseconds→TimeSpan.FromMilliseconds. - Timeout, delay:
Task.Delay(TimeSpan.FromMilliseconds(500)). - Parsing log timestamp, scheduling, animation timing.
- Chuyển đổi đơn vị thời gian thống nhất sang TimeSpan để tính toán.