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

คลาส DateTime ใน C#: การจัดการวันที่และเวลา

คลาส DateTime ใน C# ใช้แทนวันที่และเวลา ช่วงตั้งแต่ 00:00:00 1 มกราคม ปี 1 ถึง 23:59:59 31 ธันวาคม ปี 9999 ใช้ struct (Value Type) ไม่ใช่ class

สร้าง DateTime

// ระบุปี เดือน วัน
DateTime dt = new DateTime(2024, 1, 15);

// ระบุถึงวินาที
DateTime dt2 = new DateTime(2024, 1, 15, 14, 30, 45);

// จาก Ticks
DateTime dt3 = new DateTime(638400000000000000);

วันที่/เวลาปัจจุบัน

DateTime now = DateTime.Now;        // เวลาท้องถิ่น
DateTime utcNow = DateTime.UtcNow;  // เวลา UTC
DateTime today = DateTime.Today;    // วันที่วันนี้ (เวลา 00:00:00)

การคำนวณวันที่

DateTime dt = new DateTime(2024, 1, 15);

DateTime nextWeek = dt.AddDays(7);
DateTime nextMonth = dt.AddMonths(1);
DateTime nextYear = dt.AddYears(1);
DateTime oneHourLater = dt.AddHours(1);

TimeSpan diff = DateTime.Now - dt; // ความต่างระหว่างสอง DateTime

การจัดรูปแบบ (Formatting)

DateTime dt = new DateTime(2024, 1, 15, 14, 30, 45);

Console.WriteLine(dt.ToString("yyyy-MM-dd"));        // 2024-01-15
Console.WriteLine(dt.ToString("dd/MM/yyyy HH:mm"));  // 15/01/2024 14:30
Console.WriteLine(dt.ToString("D", new CultureInfo("th-TH"))); // 15 มกราคม 2567

ตัวอย่างโค้ดสมบูรณ์

using System;
using System.Globalization;

class Test
{
    static void Main()
    {
        // สร้างวันที่เฉพาะ
        DateTime dt = new DateTime(2024, 1, 15);
        Console.WriteLine(dt.ToString()); // 1/15/2024 12:00:00 AM
        
        // วันที่ปัจจุบัน
        Console.WriteLine(DateTime.Now.ToString());
        
        // เพิ่มวัน
        DateTime dt1 = new DateTime(2024, 1, 15, 8, 20, 10);
        Console.WriteLine("วันที่เดิม: " + dt1.ToString());
        DateTime dt2 = dt1.AddDays(7);
        Console.WriteLine("วันที่ใหม่: " + dt2.ToString());
    }
}

ผลลัพธ์ตัวอย่าง

1/15/2024 12:00:00 AM
1/15/2024 10:30:45 AM
วันที่เดิม: 1/15/2024 8:20:10 AM
วันที่ใหม่: 1/22/2024 8:20:10 AM

หมายเหตุ: สำหรับโซนเวลาและการจัดการวันที่ซับซ้อน ควรใช้ DateTimeOffset หรือไลบรารี NodaTime