C# में दिनांक और समय के साथ काम करने का परिचय
दिनांक और समय के साथ काम करना सॉफ्टवेयर विकास में मूलभूत कार्यों में से एक है। चाहे वह इवेंट लॉग करना हो, समय सीमा की गणना करना हो, रिपोर्ट बनाना हो या डेटाबेस के साथ काम करना हो — समय संबंधी डेटा को सही ढंग से प्रबंधित करने की क्षमता महत्वपूर्ण है। C# (.NET प्लेटफॉर्म) में इस उद्देश्य के लिए एक शक्तिशाली और लचीला टूलसेट मौजूद है, जिसमें DateTime, TimeSpan और DateTimeOffset संरचनाएं शामिल हैं।
इस लेख में, हम C# में दिनांक और समय के साथ काम करने के सभी प्रमुख पहलुओं पर विस्तार से चर्चा करेंगे। आप सीखेंगे कि कैसे समय संबंधी डेटा बनाएं, फॉर्मेट करें, तुलना करें और उसमें हेरफेर करें, साथ ही उन सर्वोत्तम प्रथाओं से भी परिचित होंगे जो सामान्य गलतियों से बचने में मदद करेंगी।
मुख्य संरचनाएं: DateTime, TimeSpan और DateTimeOffset
DateTime संरचना
DateTime समय के एक क्षण (दिनांक + समय) को दर्शाने वाली मुख्य संरचना है। यह 01.01.0001 से 31.12.9999 तक के मानों का प्रतिनिधित्व कर सकती है।
DateTime ऑब्जेक्ट बनाना:
// वर्तमान दिनांक और समयDateTime now = DateTime.Now;DateTime utcNow = DateTime.UtcNow;
// विशिष्ट दिनांक और समयDateTime specificDate = new DateTime(2025, 3, 15, 14, 30, 0); // 15 मार्च 2025, 14:30:00
// स्ट्रिंग से पार्स करनाDateTime parsedDate = DateTime.Parse("2025-03-15");
// सुरक्षित पार्सिंग के लिए TryParse का उपयोगif (DateTime.TryParse("2025-03-15", out DateTime result)){ Console.WriteLine($"सफलतापूर्वक पार्स किया गया: {result}");}मुख्य गुण और विधियां:
Date— केवल दिनांक लौटाता है (समय = 00:00:00)Year,Month,Day,Hour,Minute,Second— अलग-अलग घटकDayOfWeek— सप्ताह का दिन (enum)AddDays(),AddMonths(),AddYears()— दिनांकों के साथ अंकगणितAddHours(),AddMinutes(),AddSeconds()— समय के साथ अंकगणित
TimeSpan संरचना
TimeSpan समय अंतराल (दो क्षणों के बीच का अंतर) को दर्शाता है। यह कोई दिनांक नहीं, बल्कि अवधि है।
// TimeSpan बनानाTimeSpan interval = new TimeSpan(2, 15, 30); // 2 घंटे, 15 मिनट, 30 सेकंड
// दो दिनांकों के बीच का अंतरDateTime start = new DateTime(2025, 1, 1);DateTime end = new DateTime(2025, 1, 10);TimeSpan difference = end - start; // 9 दिन
// TimeSpan के गुणConsole.WriteLine($"दिन: {difference.Days}"); // 9Console.WriteLine($"कुल घंटे: {difference.TotalHours}"); // 216Console.WriteLine($"कुल मिनट: {difference.TotalMinutes}"); // 12960
// TimeSpan के साथ अंकगणितTimeSpan workDay = new TimeSpan(8, 0, 0); // 8 घंटेTimeSpan breakTime = new TimeSpan(1, 0, 0); // 1 घंटाTimeSpan actualWork = workDay - breakTime; // 7 घंटेDateTimeOffset संरचना
DateTimeOffset, DateTime का एक उन्नत संस्करण है जो UTC के सापेक्ष ऑफसेट को ध्यान में रखता है। यह उन अनुप्रयोगों के लिए महत्वपूर्ण है जो विभिन्न समय क्षेत्रों के उपयोगकर्ताओं के साथ काम करते हैं।
// समय क्षेत्र सहित वर्तमान समयDateTimeOffset nowOffset = DateTimeOffset.Now;
// ऑफसेट निर्दिष्ट करके बनानाDateTimeOffset withOffset = new DateTimeOffset(2025, 3, 15, 14, 0, 0, TimeSpan.FromHours(3));
// समय क्षेत्रों के बीच रूपांतरणDateTimeOffset utc = withOffset.ToUniversalTime();DateTimeOffset local = withOffset.ToLocalTime();
// ऑफसेट प्राप्त करनाConsole.WriteLine($"ऑफसेट: {withOffset.Offset}"); // +03:00DateTime के बजाय DateTimeOffset का उपयोग कब करें? यदि आपका एप्लिकेशन विभिन्न समय क्षेत्रों के उपयोगकर्ताओं के साथ काम करता है या डेटा को UTC में संग्रहीत करता है, तो DateTimeOffset का उपयोग करें। यह रोकता है
```