Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด TimeSpan.FromTicks() ใน C#

เมธอด TimeSpan.FromTicks() ใน C# ใช้สร้าง TimeSpan จากจำนวน ticks ที่ระบุ (1 tick = 100 nanoseconds = 0.0001 milliseconds)

ไวยากรณ์ (Syntax)

public static TimeSpan FromTicks(long value);
  • value — จำนวน ticks (long) — สามารถเป็นลบได้
  • คืนค่า TimeSpan ที่แทนช่วงเวลาดังกล่าว

ตัวอย่างที่ 1: สร้าง TimeSpan จากค่า ticks ต่างๆ และเปรียบเทียบ

using System;

public class Demo
{
    public static void Main()
    {
        TimeSpan span1 = TimeSpan.FromTicks(18768768);
        TimeSpan span2 = new TimeSpan(-9, 45, 50);
        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("Result (Comparison of span1 and span2) = " + TimeSpan.Compare(span1, span2));
        Console.WriteLine("Result (Comparison of span2 and span3) = " + TimeSpan.Compare(span2, span3));
        Console.WriteLine("Result (Comparison of span1 and span3) = " + TimeSpan.Compare(span1, span3));
        Console.WriteLine("Result (Comparison of span3 and span4) = " + TimeSpan.Compare(span3, span4));
        Console.WriteLine("Result (Comparison of span4 and span5) = " + TimeSpan.Compare(span4, span5));
    }
}

ผลลัพธ์

TimeSpan1 = 00:00:01.8768768
TimeSpan2 = -08:14:10
TimeSpan3 = 05:00:00
TimeSpan4 = 00:00:10
TimeSpan5 = 00:02:00
Result (Comparison of span1 and span2) = 1
Result (Comparison of span2 and span3) = -1
Result (Comparison of span1 and span3) = -1
Result (Comparison of span3 and span4) = 1
Result (Comparison of span4 and span5) = -1

ตัวอย่างที่ 2: ค่า ticks เล็กน้อยและเปรียบเทียบ

using System;

public class Demo
{
    public static void Main()
    {
        TimeSpan span1 = TimeSpan.FromTicks(1);
        TimeSpan span2 = new TimeSpan(1);
        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("Result (Comparison of span1 and span2) = " + TimeSpan.Compare(span1, span2));
        Console.WriteLine("Result (Comparison of span2 and span3) = " + TimeSpan.Compare(span2, span3));
        Console.WriteLine("Result (Comparison of span1 and span3) = " + TimeSpan.Compare(span1, span3));
        Console.WriteLine("Result (Comparison of span3 and span4) = " + TimeSpan.Compare(span3, span4));
        Console.WriteLine("Result (Comparison of span4 and span5) = " + TimeSpan.Compare(span4, span5));
    }
}

ผลลัพธ์

TimeSpan1 = 00:00:00.0000001
TimeSpan2 = 00:00:00.0000001
TimeSpan3 = 01:00:00
TimeSpan4 = 00:00:00.0010000
TimeSpan5 = 00:01:00
Result (Comparison of span1 and span2) = 0
Result (Comparison of span2 and span3) = -1
Result (Comparison of span1 and span3) = -1
Result (Comparison of span3 and span4) = 1
Result (Comparison of span4 and span5) = -1

สรุป

  • TimeSpan.FromTicks(long) — สร้าง TimeSpan จาก ticks (1 tick = 100 ns = 0.1 μs)
  • 1 second = 10,000,000 ticks | 1 ms = 10,000 ticks | 1 μs = 10 ticks
  • TimeSpan.Compare(ts1, ts2) คืนค่า: -1 (ts1 < ts2), 0 (ts1 = ts2), 1 (ts1 > ts2)
  • เมธอด factory อื่นๆ: FromDays, FromHours, FromMinutes, FromSeconds, FromMilliseconds
  • คอนสตรัคเตอร์ new TimeSpan(ticks) ทำงานเหมือน FromTicks
  • TimeSpan รองรับค่าลบ (negative time span) — ใช้สำหรับความต่างเวลา

ตารางการแปลงหน่วยเวลา

หน่วยเทียบเท่า Ticksเมธอด Factory
1 Tick1FromTicks(1)
1 Microsecond (μs)10—
1 Millisecond (ms)10,000FromMilliseconds(1)
1 Second10,000,000FromSeconds(1)
1 Minute600,000,000FromMinutes(1)
1 Hour36,000,000,000FromHours(1)
1 Day864,000,000,000FromDays(1)

การใช้งานจริง: วัดเวลารันโค้ด

var sw = System.Diagnostics.Stopwatch.StartNew();
// ... code to measure ...
sw.Stop();
TimeSpan elapsed = TimeSpan.FromTicks(sw.ElapsedTicks); // หรือ sw.Elapsed โดยตรง
Console.WriteLine($"Elapsed: {elapsed.TotalMilliseconds:F2} ms");