ฟังก์ชันเกี่ยวกับเวลาใน C# (DateTime)
โครงสร้าง DateTime มี Property และ Method สำหรับจัดการวันที่และเวลา นี่คือ Method ที่เกี่ยวกับการบวก/ลบเวลา
เมธอด Add* สำคัญ
| เมธอด | คำอธิบาย |
AddDays(double) | บวกวัน (รองรับทศนิยม) |
AddHours(double) | บวกชั่วโมง |
AddMinutes(double) | บวกนาที |
AddSeconds(double) | บวกวินาที |
AddMilliseconds(double) | บวกมิลลิวินาที |
AddYears(int) | บวกปี |
AddMonths(int) | บวกเดือน |
AddTicks(long) | บวก Ticks (1 Tick = 100ns) |
ตัวอย่าง: AddMilliseconds
using System;
public class Demo
{
public static void Main()
{
string format = "MM/dd/yyyy hh:mm:ss.fffffff";
DateTime current = new DateTime(2018, 7, 23, 13, 0, 0);
Console.WriteLine($"Original: {current.ToString(format)} ({current.Ticks:N0} ticks)");
DateTime next = current.AddMilliseconds(1);
Console.WriteLine($"Next: {next.ToString(format)} ({next.Ticks:N0} ticks)");
}
}
ผลลัพธ์
Original: 07/23/2018 01:00:00.0000000 (636,679,476,000,000,000 ticks)
Next: 07/23/2018 01:00:00.0010000 (636,679,476,000,010,000 ticks)
Property เวลาสำคัญ
| Property | คำอธิบาย |
Hour | ชั่วโมง (0-23) |
Minute | นาที (0-59) |
Second | วินาที (0-59) |
Millisecond | มิลลิวินาที (0-999) |
TimeOfDay | TimeSpan ตั้งแต่เที่ยงคืน |
Ticks | จำนวน Ticks จาก 0001-01-01 |
TimeSpan - ความแตกต่างของเวลา
DateTime start = DateTime.Now;
// ... do work ...
DateTime end = DateTime.Now;
TimeSpan elapsed = end - start;
Console.WriteLine($"Elapsed: {elapsed.TotalMilliseconds} ms");
แนะนำ: ใช้ NodaTime สำหรับแอปพลิเคชันจริง
- จัดการ Timezone, DST, Calendar ดีกว่า DateTime มาก
- Immutable, Testable, Correct