विभिन्न इकाइयों - वर्षों, महीनों, हफ्तों और दिनों का उपयोग करके एक तिथि से समय जोड़ें या घटाएं। परियोजना योजना, शेड्यूलिंग, और विभिन्न समय-आधारित गणनाओं के लिए उपयोगी।
कैलेंडर कैलकुलेटर एक बहुपरकारी उपकरण है जिसे दिनांक अंकगणितीय संचालन करने के लिए डिज़ाइन किया गया है। यह उपयोगकर्ताओं को दिए गए दिनांक से समय इकाइयों (वर्ष, महीने, सप्ताह और दिन) को जोड़ने या घटाने की अनुमति देता है। यह कैलकुलेटर विशेष रूप से परियोजना योजना, अनुसूची बनाने और विभिन्न समय-आधारित गणनाओं के लिए उपयोगी है।
कैलेंडर कैलकुलेटर दिनांक गणनाओं के लिए निम्नलिखित एल्गोरिदम का उपयोग करता है:
वर्षों को जोड़ने/घटाने के लिए:
महीनों को जोड़ने/घटाने के लिए:
सप्ताहों को जोड़ने/घटाने के लिए:
दिनों को जोड़ने/घटाने के लिए:
लीप वर्ष: वर्षों को जोड़ने/घटाने के समय, फरवरी 29 के लिए विशेष ध्यान रखा जाता है। यदि परिणामी वर्ष लीप वर्ष नहीं है, तो दिनांक को फरवरी 28 पर समायोजित किया जाता है।
महीने के अंत की तिथियाँ: महीनों को जोड़ने/घटाने के समय, यदि परिणामी दिनांक मौजूद नहीं है (जैसे, अप्रैल 31), तो इसे महीने के अंतिम मान्य दिन (जैसे, अप्रैल 30) पर समायोजित किया जाता है।
BCE/CE संक्रमण: कैलकुलेटर BCE/CE संक्रमण के पार दिनांक को सही ढंग से संभालता है, यह ध्यान में रखते हुए कि ग्रेगोरियन कैलेंडर में वर्ष 0 नहीं है।
दिनांक सीमाएँ: कैलकुलेटर अंतर्निहित दिनांक प्रणाली की सीमाओं का सम्मान करता है, आमतौर पर 1 CE से 31 दिसंबर, 9999 CE तक।
कैलेंडर कैलकुलेटर के कई व्यावहारिक अनुप्रयोग हैं:
परियोजना प्रबंधन: परियोजना की समय सीमा, मील का पत्थर तिथियों, और स्प्रिंट अवधि की गणना करना।
वित्तीय योजना: भुगतान की अंतिम तिथियों, ऋण की शर्तों, और निवेश की परिपक्वता तिथियों का निर्धारण करना।
कार्यक्रम योजना: आवर्ती घटनाओं, त्योहारों के कार्यक्रम, या वर्षगांठ समारोहों की तिथियों की गणना करना।
कानूनी और संविदात्मक: कानूनी कार्यवाही, अनुबंध समाप्ति, या नोटिस अवधि के लिए समय सीमा की गणना करना।
शैक्षणिक योजना: सेमेस्टर की शुरुआत/अंत की तिथियों, असाइनमेंट की अंतिम तिथियों, या अनुसंधान समयसीमाओं का निर्धारण करना।
यात्रा योजना: यात्रा की अवधि, वीज़ा समाप्ति तिथियों, या बुकिंग विंडो की गणना करना।
स्वास्थ्य देखभाल: फॉलो-अप अपॉइंटमेंट, दवा चक्र, या उपचार की अवधि की योजना बनाना।
निर्माण और लॉजिस्टिक्स: उत्पादन कार्यक्रम, डिलीवरी तिथियों, या रखरखाव अंतराल की योजना बनाना।
हालांकि कैलेंडर कैलकुलेटर बहुपरकारी है, लेकिन दिनांक और समय हेरफेर के लिए अन्य उपकरण और विधियाँ हैं:
स्प्रेडशीट फ़ंक्शन: Microsoft Excel और Google Sheets जैसे कार्यक्रम सरल गणनाओं के लिए अंतर्निहित दिनांक फ़ंक्शन प्रदान करते हैं।
प्रोग्रामिंग भाषा पुस्तकालय: अधिकांश प्रोग्रामिंग भाषाओं में मजबूत दिनांक/समय पुस्तकालय होते हैं (जैसे, Python में datetime, JavaScript में Moment.js)।
ऑनलाइन दिनांक कैलकुलेटर: विभिन्न वेबसाइटें सरल दिनांक गणना उपकरण प्रदान करती हैं, अक्सर विशिष्ट ध्यान केंद्रित करती हैं (जैसे, कार्यदिवस कैलकुलेटर)।
परियोजना प्रबंधन सॉफ़्टवेयर: Microsoft Project या Jira जैसे उपकरण अपनी अनुसूची कार्यक्षमताओं के भीतर दिनांक गणना सुविधाएँ शामिल करते हैं।
यूनिक्स टाइमस्टैम्प कैलकुलेटर: तकनीकी उपयोगकर्ताओं के लिए, ये उपकरण दिनांक के साथ 1 जनवरी 1970 से बीते सेकंड के रूप में काम करते हैं।
मोबाइल ऐप: कई कैलेंडर और उत्पादकता ऐप में दिनांक गणना की सुविधाएँ शामिल होती हैं।
दिनांक अंकगणित का विचार कैलेंडर प्रणालियों के विकास के साथ विकसित हुआ है:
प्राचीन सभ्यताएँ: मिस्रवासी, बेबीलोनियन, और मायन ने जटिल कैलेंडर प्रणालियों का विकास किया, जो दिनांक गणनाओं के लिए आधार तैयार किया।
जूलियन कैलेंडर (45 BCE): जूलियस सीज़र द्वारा पेश किया गया, इसने सौर वर्ष को मानकीकृत किया और लीप वर्ष के विचार को पेश किया, जिससे दीर्घकालिक दिनांक गणनाएँ अधिक सटीक हो गईं।
ग्रेगोरियन कैलेंडर (1582): पोप ग्रेगोरी XIII द्वारा पेश किया गया, इसने जूलियन कैलेंडर के लीप वर्ष के नियम को सुधारते हुए दीर्घकालिक दिनांक गणनाओं की सटीकता को बढ़ाया।
मानक समय का अपनाना (19वीं सदी): समय क्षेत्र और मानक समय के परिचय ने अधिक सटीक अंतरराष्ट्रीय दिनांक और समय गणनाओं को सक्षम किया।
कंप्यूटर युग (20वीं सदी): कंप्यूटरों के आगमन ने विभिन्न दिनांक/समय पुस्तकालयों और एल्गोरिदम के विकास को जन्म दिया, जिससे जटिल दिनांक अंकगणित सुलभ और तेज हो गया।
यूनिक्स टाइमस्टैम्प (1970): दिनांक को 1 जनवरी 1970 से बीते सेकंड के रूप में प्रतिनिधित्व करने का एक मानक तरीका पेश किया, जिससे कंप्यूटर प्रणालियों में दिनांक अंकगणित को सरल बनाया गया।
ISO 8601 (1988): यह दिनांक और समय प्रतिनिधित्व के लिए अंतरराष्ट्रीय मानक ने विभिन्न प्रणालियों और संस्कृतियों के बीच दिनांक अंकगणित को मानकीकृत करने में मदद की।
यहाँ विभिन्न प्रोग्रामिंग भाषाओं में दिनांक गणनाएँ करने के कुछ कोड उदाहरण दिए गए हैं:
1from datetime import datetime, timedelta
2
3def add_time(date_str, years=0, months=0, weeks=0, days=0):
4 date = datetime.strptime(date_str, "%Y-%m-%d")
5
6 # वर्षों और महीनों को जोड़ें
7 new_year = date.year + years
8 new_month = date.month + months
9 while new_month > 12:
10 new_year += 1
11 new_month -= 12
12 while new_month < 1:
13 new_year -= 1
14 new_month += 12
15
16 # महीने के अंत के मामलों को संभालें
17 last_day_of_month = (datetime(new_year, new_month % 12 + 1, 1) - timedelta(days=1)).day
18 new_day = min(date.day, last_day_of_month)
19
20 new_date = date.replace(year=new_year, month=new_month, day=new_day)
21
22 # सप्ताहों और दिनों को जोड़ें
23 new_date += timedelta(weeks=weeks, days=days)
24
25 return new_date.strftime("%Y-%m-%d")
26
27## उदाहरण उपयोग
28print(add_time("2023-01-31", months=1)) # आउटपुट: 2023-02-28
29print(add_time("2023-02-28", years=1)) # आउटपुट: 2024-02-28
30print(add_time("2023-03-15", weeks=2, days=3)) # आउटपुट: 2023-04-01
31
1function addTime(dateStr, years = 0, months = 0, weeks = 0, days = 0) {
2 let date = new Date(dateStr);
3
4 // वर्षों और महीनों को जोड़ें
5 date.setFullYear(date.getFullYear() + years);
6 date.setMonth(date.getMonth() + months);
7
8 // सप्ताहों और दिनों को जोड़ें
9 date.setDate(date.getDate() + (weeks * 7) + days);
10
11 return date.toISOString().split('T')[0];
12}
13
14// उदाहरण उपयोग
15console.log(addTime("2023-01-31", 0, 1)); // आउटपुट: 2023-02-28
16console.log(addTime("2023-02-28", 1)); // आउटपुट: 2024-02-28
17console.log(addTime("2023-03-15", 0, 0, 2, 3)); // आउटपुट: 2023-04-01
18
1import java.time.LocalDate;
2import java.time.Period;
3
4public class DateCalculator {
5 public static String addTime(String dateStr, int years, int months, int weeks, int days) {
6 LocalDate date = LocalDate.parse(dateStr);
7
8 // वर्षों, महीनों, सप्ताहों, और दिनों को जोड़ें
9 LocalDate newDate = date
10 .plus(Period.ofYears(years))
11 .plus(Period.ofMonths(months))
12 .plus(Period.ofWeeks(weeks))
13 .plus(Period.ofDays(days));
14
15 return newDate.toString();
16 }
17
18 public static void main(String[] args) {
19 System.out.println(addTime("2023-01-31", 0, 1, 0, 0)); // आउटपुट: 2023-02-28
20 System.out.println(addTime("2023-02-28", 1, 0, 0, 0)); // आउटपुट: 2024-02-28
21 System.out.println(addTime("2023-03-15", 0, 0, 2, 3)); // आउटपुट: 2023-04-01
22 }
23}
24
ये उदाहरण दिखाते हैं कि कैसे Python, JavaScript, और Java में दिनांक गणनाएँ की जा सकती हैं, विभिन्न किनारे के मामलों जैसे महीने के अंत की तिथियों और लीप वर्षों को संभालते हुए।
31 जनवरी, 2023 को 1 माह जोड़ना:
29 फरवरी, 2024 (एक लीप वर्ष) को 1 वर्ष जोड़ना:
15 मार्च, 2023 से 2 सप्ताह और 3 दिन घटाना:
31 जुलाई, 2022 को 18 महीने जोड़ना:
रिचर्ड्स, ई. जी. (2013). कैलेंडर। एस. ई. अर्बन और पी. के. सीडेलमैन (सं.) द्वारा, खगोलीय अल्मनैक के लिए व्याख्यात्मक पूरक (3री संस्करण, पृष्ठ 585-624)। मिल वैली, CA: यूनिवर्सिटी साइंस बुक्स।
डर्शोविट्ज़, एन., और रिइंगोल्ड, ई. एम. (2008). कैलेंड्रिकल कैलकुलेशंस (3री संस्करण)। कैम्ब्रिज यूनिवर्सिटी प्रेस।
कुहन, एम., और जॉनसन, के. (2013). एप्लाइड प्रेडिक्टिव मॉडलिंग। स्प्रिंगर।
"दिनांक और समय वर्ग"। ओरेकल। https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
"datetime — मूल दिनांक और समय प्रकार"। पायथन सॉफ्टवेयर फाउंडेशन। https://docs.python.org/3/library/datetime.html
"दिनांक"। मोज़िला डेवलपर नेटवर्क। https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
अपने वर्कफ़्लो के लिए उपयोगी हो सकने वाले और अधिक उपकरण खोजें।