C# में वर्तमान या किसी विशिष्ट तारीख से पिछला दिन प्राप्त करने के लिए DateTime.AddDays(-1) का उपयोग किया जाता है। यह AddDays() मेथड का ऋणात्मक मान के साथ उपयोग है।
उदाहरण
using System;
public class Demo
{
public static void Main()
{
DateTime today = DateTime.Today;
Console.WriteLine($"आज: {today:D}");
Console.WriteLine();
// पिछला दिन (कल)
DateTime yesterday = today.AddDays(-1);
Console.WriteLine($"कल: {yesterday:D}");
// परसों
DateTime dayBeforeYesterday = today.AddDays(-2);
Console.WriteLine($"परसों: {dayBeforeYesterday:D}");
// एक सप्ताह पहले
DateTime lastWeek = today.AddDays(-7);
Console.WriteLine($"एक सप्ताह पहले: {lastWeek:D}");
// महीने की पहली तारीख से पिछला दिन (पिछले महीने का अंतिम दिन)
DateTime firstOfMonth = new DateTime(today.Year, today.Month, 1);
DateTime lastDayPrevMonth = firstOfMonth.AddDays(-1);
Console.WriteLine($"\nपिछले महीने का अंतिम दिन: {lastDayPrevMonth:D}");
// वर्ष की पहली तारीख से पिछला दिन (पिछले वर्ष का अंतिम दिन)
DateTime firstOfYear = new DateTime(today.Year, 1, 1);
DateTime lastDayPrevYear = firstOfYear.AddDays(-1);
Console.WriteLine($"पिछले वर्ष का अंतिम दिन: {lastDayPrevYear:D}");
}
}
आउटपुट
आज: Monday, January 15, 2024 कल: Sunday, January 14, 2024 परसों: Saturday, January 13, 2024 एक सप्ताह पहले: Monday, January 8, 2024 पिछले महीने का अंतिम दिन: Sunday, December 31, 2023 पिछले वर्ष का अंतिम दिन: Sunday, December 31, 2023
व्यावहारिक उपयोग: व्यावसायिक दिन गणना
using System;
public class Demo
{
public static void Main()
{
DateTime today = DateTime.Today;
// पिछला व्यावसायिक दिन (शनिवार/रविवार छोड़कर)
DateTime prevBusinessDay = today.AddDays(-1);
while (prevBusinessDay.DayOfWeek == DayOfWeek.Saturday ||
prevBusinessDay.DayOfWeek == DayOfWeek.Sunday)
{
prevBusinessDay = prevBusinessDay.AddDays(-1);
}
Console.WriteLine($"आज: {today:ddd, MMM dd}");
Console.WriteLine($"पिछला व्यावसायिक दिन: {prevBusinessDay:ddd, MMM dd}");
// अगला व्यावसायिक दिन
DateTime nextBusinessDay = today.AddDays(1);
while (nextBusinessDay.DayOfWeek == DayOfWeek.Saturday ||
nextBusinessDay.DayOfWeek == DayOfWeek.Sunday)
{
nextBusinessDay = nextBusinessDay.AddDays(1);
}
Console.WriteLine($"अगला व्यावसायिक दिन: {nextBusinessDay:ddd, MMM dd}");
}
}
आउटपुट (यदि आज सोमवार है)
आज: Mon, Jan 15 पिछला व्यावसायिक दिन: Fri, Jan 12 अगला व्यावसायिक दिन: Tue, Jan 16
AddDays() बनाम अन्य दृष्टिकोण
| दृष्टिकोण | कोड | उपयोग केस |
|---|---|---|
| AddDays(-1) | date.AddDays(-1) | सरल पिछला दिन |
| Add(TimeSpan) | date.Add(TimeSpan.FromDays(-1)) | TimeSpan ऑब्जेक्ट के साथ संगतता |
| घटाव ऑपरेटर | date - TimeSpan.FromDays(1) | अधिक पठनीय, LINQ-शैली |
महत्वपूर्ण बिंदु
AddDays(-1)औरAddDays(1)समान मेथड हैं, केवल चिह्न अलग है- महीने/वर्ष की सीमाएं स्वचालित रूप से संभाली जाती हैं
DateTimeअपरिवर्तनीय है - मूल तारीख नहीं बदलती- केवल दिनांक भाग बदलता है, समय भाग समान रहता है
- व्यावसायिक दिन गणना के लिए सप्ताहांत जांच आवश्यक है
- छुट्टियों (holidays) के लिए अलग लॉजिक चाहिए