เมธอด 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 Tick | 1 | FromTicks(1) |
| 1 Microsecond (μs) | 10 | — |
| 1 Millisecond (ms) | 10,000 | FromMilliseconds(1) |
| 1 Second | 10,000,000 | FromSeconds(1) |
| 1 Minute | 600,000,000 | FromMinutes(1) |
| 1 Hour | 36,000,000,000 | FromHours(1) |
| 1 Day | 864,000,000,000 | FromDays(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");