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

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

Giới thiệu

Phương thức tĩnh TimeSpan.FromTicks(long value) tạo một TimeSpan đại diện cho khoảng thời gian tính bằng tick (1 tick = 100 nanosecond = 0.1 microsecond). Đây là đơn vị độ chính xác cao nhất của TimeSpan.

Cú pháp

public static TimeSpan FromTicks(long value);

Ví dụ 1

using System;

public class Demo
{
    public static void Main()
    {
        TimeSpan span1 = TimeSpan.FromTicks(18768768);
        TimeSpan span2 = new TimeSpan(-9, 45, 50); // -9 giờ 45 phút 50 giây
        TimeSpan span3 = TimeSpan.FromHours(5);
        TimeSpan span4 = TimeSpan.FromMilliseconds(10000);
        TimeSpan span5 = TimeSpan.FromMinutes(2);
        TimeSpan span6 = TimeSpan.FromMinutes(20);

        Console.WriteLine("TimeSpan1 = " + span1);
        Console.WriteLine("TimeSpan2 = " + span2);
        Console.WriteLine("TimeSpan3 = " + span3);
        Console.WriteLine("TimeSpan4 = " + span4);
        Console.WriteLine("TimeSpan5 = " + span5);

        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));
        Console.WriteLine("So sánh span4 vs span5 = " + TimeSpan.Compare(span4, span5));
    }
}

Kết quả

TimeSpan1 = 00:00:01.8768768
TimeSpan2 = -08:14:10
TimeSpan3 = 05:00:00
TimeSpan4 = 00:00:10
TimeSpan5 = 00:02:00
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
So sánh span4 vs span5 = -1

Ví dụ 2

using System;

public class Demo
{
    public static void Main()
    {
        TimeSpan span1 = TimeSpan.FromTicks(1); // 1 tick = 100ns
        TimeSpan span2 = new TimeSpan(1); // Cũng 1 tick
        TimeSpan span3 = TimeSpan.FromHours(1);
        TimeSpan span4 = TimeSpan.FromMilliseconds(1);
        TimeSpan span5 = TimeSpan.FromMinutes(1);
        TimeSpan span6 = TimeSpan.FromMinutes(1);

        Console.WriteLine("TimeSpan1 = " + span1);
        Console.WriteLine("TimeSpan2 = " + span2);
        Console.WriteLine("TimeSpan3 = " + span3);
        Console.WriteLine("TimeSpan4 = " + span4);
        Console.WriteLine("TimeSpan5 = " + span5);

        Console.WriteLine("So sánh span1 vs span2 = " + TimeSpan.Compare(span1, span2)); // 0 (bằng nhau)
        Console.WriteLine("So sánh span2 vs span3 = " + TimeSpan.Compare(span2, span3)); // -1
        Console.WriteLine("So sánh span1 vs span3 = " + TimeSpan.Compare(span1, span3)); // -1
        Console.WriteLine("So sánh span3 vs span4 = " + TimeSpan.Compare(span3, span4)); // 1
        Console.WriteLine("So sánh span4 vs span5 = " + TimeSpan.Compare(span4, span5)); // -1
    }
}

Kết quả

TimeSpan1 = 00:00:00.0000001
TimeSpan2 = 00:00:00.0000001
TimeSpan3 = 01:00:00
TimeSpan4 = 00:00:00.0010000
TimeSpan5 = 00:01:00
So sánh span1 vs span2 = 0
So sánh span2 vs span3 = -1
So sánh span1 vs span3 = -1
So sánh span3 vs span4 = 1
So sánh span4 vs span5 = -1

Các factory method TimeSpan khác

Phương thức Mô tả
FromDays(double) Từ số ngày (có thể lẻ).
FromHours(double) Từ số giờ.
FromMinutes(double) Từ số phút.
FromSeconds(double) Từ số giây.
FromMilliseconds(double) Từ số milli-giây.
new TimeSpan(days, hours, minutes, seconds, milliseconds) Constructor đầy đủ.

Lưu ý quan trọng

  • 1 tick = 100 nanoseconds = 0.0001 milliseconds.
  • TimeSpan.TicksPerSecond = 10,000,000.
  • TimeSpan.TicksPerMillisecond = 10,000.
  • TimeSpan.Compare trả về -1 (nhỏ hơn), 0 (bằng), 1 (lớn hơn).
  • TimeSpan có thể âm (khoảng thời gian ngược).
  • Để format tùy chỉnh: span.ToString(@"hh\:mm\:ss\.fff").