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

Phương thức TimeSpan.FromMilliseconds() trong C#

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àoVí dụ
FromDaysNgày (double)FromDays(1.5) → 1.12:00:00
FromHoursGiờ (double)FromHours(2.5) → 02:30:00
FromMinutesPhút (double)FromMinutes(90) → 01:30:00
FromSecondsGiây (double)FromSeconds(3661) → 01:01:01
FromMillisecondsMili-giây (double)FromMilliseconds(1500) → 00:00:01.5000000
FromTicksTicks (long, 100ns)FromTicks(10000000) → 00:00:01

Lưu ý quan trọng

  • Tham số double cho 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ém OverflowException.
  • TimeSpan có độ 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.