บทนำ
เมธอด DateTimeOffset.AddTicks() ใน C# ใช้เพิ่มจำนวน ticks ที่ระบุให้กับค่าของอินสแตนซ์นี้ 1 tick = 100 nanoseconds (0.0001 milliseconds) หากต้องการลบ ticks ให้ระบุค่าลบ
ไวยากรณ์ (Syntax)
public DateTimeOffset AddTicks (long val);
โดยที่ val คือจำนวน ticks (100-nanosecond intervals)
ตารางจำนวน ticks ต่อหน่วยเวลา
| ช่วงเวลา | จำนวน ticks |
|---|---|
| 1 วินาที | 10,000,000 |
| 1 นาที | 600,000,000 |
| 1 ชั่วโมง | 36,000,000,000 |
| 1 วัน | 864,000,000,000 |
| 1 สัปดาห์ | 6,048,000,000,000 |
| 1 เดือน | ขึ้นอยู่กับจำนวนวันในเดือน |
| ปีไม่ใช่ปีอธิกสุรทิน | 315,360,000,000,000 |
| ปีอธิกสุรทิน | 316,224,000,000,000 |
ตัวอย่างที่ 1: เพิ่ม 3 วินาที (30,000,000 ticks)
using System;
public class Demo
{
public static void Main()
{
DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 11, 11, 8, 20, 10, new TimeSpan(-5, 0, 0));
Console.WriteLine("DateTimeOffset (before adding ticks) = {0}", dateTimeOffset);
// 3 seconds = 30,000,000 ticks
DateTimeOffset res = dateTimeOffset.AddTicks(30000000);
Console.WriteLine("DateTimeOffset (after adding ticks) = {0}", res);
}
}
ผลลัพธ์
DateTimeOffset (before adding ticks) = 11/11/2019 8:20:10 AM -05:00 DateTimeOffset (after adding ticks) = 11/11/2019 8:20:13 AM -05:00
ตัวอย่างที่ 2: ลบ 2 วินาที (-20,000,000 ticks)
using System;
public class Demo
{
public static void Main()
{
DateTimeOffset dateTimeOffset = new DateTimeOffset(2019, 11, 11, 8, 20, 10, new TimeSpan(-5, 0, 0));
Console.WriteLine("DateTimeOffset (before subtracting ticks) = {0}", dateTimeOffset);
// 2 seconds = 20,000,000 ticks
DateTimeOffset res = dateTimeOffset.AddTicks(-20000000);
Console.WriteLine("DateTimeOffset (after subtracting ticks) = {0}", res);
}
}
ผลลัพธ์
DateTimeOffset (before subtracting ticks) = 11/11/2019 8:20:10 AM -05:00 DateTimeOffset (after subtracting ticks) = 11/11/2019 8:20:08 AM -05:00
สรุป
เมธอด AddTicks() ให้การควบคุมเวลาระดับละเอียดที่สุด (100 nanoseconds) ใช้ในการคำนวณเวลาที่ต้องการความแม่นยำสูง ระบบ real-time หรือการ benchmark คืนอินสแตนซ์ DateTimeOffset ใหม่ (immutable) ไม่เปลี่ยนค่าต้นฉบับ