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
ที่มีค่าลบจะทำหน้าที่นี้ได้ดี
ดูเพิ่มเติม
- เอกสารอ้างอิง API ของ .NET สำหรับ
DateTime
- บทนำเกี่ยวกับ
TimeSpan
- แนวทางปฏิบัติที่ดีที่สุดของ Microsoft สำหรับ
DateTime
และDateTimeOffset
- เอกสารของ Noda Time: https://nodatime.org