ใน C#, DateTime และ TimeSpan เป็นหัวใจหลักในการดำเนินการด้านวันที่และเวลา DateTime แทนการที่แน่นอนในเวลา, โดยปกติจะแสดงเป็นวันที่และเวลาของวัน ในขณะที่ TimeSpan แทนช่วงเวลา ในอดีต, การคำนวณวันที่และเวลามักเกิดข้อผิดพลาดเนื่องจากการจัดการกับวัน, เดือน, และปีอธิกสุรทินด้วยตนเอง DateTime ทำให้ความซับซ้อนเหล่านี้แปลงเป็นรูปแบบง่าย ๆ โดยให้เฟรมเวิร์กจัดการกับส่วนที่ยาก ทางเลือกของ DateTime และ TimeSpan ใน .NET รวมถึง DateTimeOffset ซึ่งรวมถึงการหักช่วงเวลาของเขตเวลา, ทำให้เหมาะกับแอปพลิเคชั่นที่ทำงานข้ามเขตเวลา ทางเลือกอื่นคือ Noda Time, ไลบรารีจาก Jon Skeet ออกแบบมาเพื่อการจัดการวันที่และเวลาที่ซับซ้อนยิ่งขึ้น เช่น ปฏิทินที่แตกต่างกัน ในเชิงการดำเนินการ, เมื่อคุณเพิ่ม TimeSpan เข้ากับ DateTime, ในส่วนลึกของเฟรมเวิร์ก, มันกำลังจัดการกับขีด ซึ่งเป็นหน่วยพื้นฐานของเวลาใน .NET (1 ขีด = 100 นาโนวินาที) สำหรับวันที่ในอดีต, TimeSpan ที่มีค่าลบจะทำหน้าที่นี้ได้ดี.