การคำนวณวันที่ในอนาคตหรืออดีต

C#:
การคำนวณวันที่ในอนาคตหรืออดีต

วิธีการ:

การคำนวณวันที่ในอนาคต:

using System;

class DateExample
{
    static void Main()
    {
        DateTime currentDate = DateTime.Now;
        TimeSpan oneWeek = TimeSpan.FromDays(7);
        
        DateTime nextWeek = currentDate + oneWeek;
        Console.WriteLine($"หนึ่งสัปดาห์จากนี้: {nextWeek}");
    }
}

ผลลัพธ์:

หนึ่งสัปดาห์จากนี้: <วันที่หนึ่งสัปดาห์จากวันปัจจุบัน>

การคำนวณวันที่ในอดีต:

using System;

class DateExample
{
    static void Main()
    {
        DateTime currentDate = DateTime.Now;
        TimeSpan tenDaysAgo = TimeSpan.FromDays(-10);
        
        DateTime pastDate = currentDate + tenDaysAgo;
        Console.WriteLine($"สิบวันที่ผ่านมาคือ: {pastDate}");
    }
}

ผลลัพธ์:

สิบวันที่ผ่านมาคือ: <วันที่สิบวันก่อนวันปัจจุบัน>

ศึกษาเพิ่มเติม

ใน C#, DateTime และ TimeSpan เป็นหัวใจหลักในการดำเนินการด้านวันที่และเวลา DateTime แทนการที่แน่นอนในเวลา, โดยปกติจะแสดงเป็นวันที่และเวลาของวัน ในขณะที่ TimeSpan แทนช่วงเวลา

ในอดีต, การคำนวณวันที่และเวลามักเกิดข้อผิดพลาดเนื่องจากการจัดการกับวัน, เดือน, และปีอธิกสุรทินด้วยตนเอง DateTime ทำให้ความซับซ้อนเหล่านี้แปลงเป็นรูปแบบง่าย ๆ โดยให้เฟรมเวิร์กจัดการกับส่วนที่ยาก

ทางเลือกของ DateTime และ TimeSpan ใน .NET รวมถึง DateTimeOffset ซึ่งรวมถึงการหักช่วงเวลาของเขตเวลา, ทำให้เหมาะกับแอปพลิเคชั่นที่ทำงานข้ามเขตเวลา ทางเลือกอื่นคือ Noda Time, ไลบรารีจาก Jon Skeet ออกแบบมาเพื่อการจัดการวันที่และเวลาที่ซับซ้อนยิ่งขึ้น เช่น ปฏิทินที่แตกต่างกัน

ในเชิงการดำเนินการ, เมื่อคุณเพิ่ม TimeSpan เข้ากับ DateTime, ในส่วนลึกของเฟรมเวิร์ก, มันกำลังจัดการกับขีด ซึ่งเป็นหน่วยพื้นฐานของเวลาใน .NET (1 ขีด = 100 นาโนวินาที) สำหรับวันที่ในอดีต, TimeSpan ที่มีค่าลบจะทำหน้าที่นี้ได้ดี

ดูเพิ่มเติม