पूरे दिन को दर्शाने के लिए उसकी शुरुआत शामिल करें और अगले दिन की शुरुआत को बाहर रखें। Mac Calendar में प्रकाशन-चिह्न बनाने के लिए पूरे दिन का इवेंट बनाएँ; iCalendar डेटा में, स्पष्ट समाप्ति तिथि इवेंट के बाहर आने वाले पहले दिन की पहचान करती है।

इस चरण-दर-चरण मार्गदर्शिका में 18 जून, 2027 की एक काल्पनिक प्रकाशन तिथि का उपयोग किया गया है। काम है अपने Mac कैलेंडर में प्रकाशन का एक पूरा दिन दर्ज करना, उसे निर्यात करना और उसकी सीमाएँ जाँचना। यही तर्क आपको कैलेंडर, स्प्रेडशीट और ऑटोमेशन के बीच तारीख जाते समय होने वाली गलतियाँ पहचानने में भी मदद करता है।

अगले दिन की अनन्य सीमा का क्या अर्थ है?

काल्पनिक प्रकाशन दिवस के लिए, शामिल तारीख 18 जून है। 19 जून पहली बाहर रखी गई तारीख है। अर्ध-खुले अंतराल के रूप में इसे [2027-06-18, 2027-06-19) लिखा जाता है: वर्गाकार कोष्ठक शुरुआत को शामिल करता है और गोल कोष्ठक अंत को बाहर रखता है।

iCalendar मानक किसी इवेंट का DTSTART समावेशी और उसका DTEND गैर-समावेशी निर्धारित करता है। पूरे दिन के इवेंट में दोनों के लिए तारीख के मान इस्तेमाल होते हैं। इसलिए, अगले दिन की समाप्ति तिथि एक पूरे दिन को दर्शाती है। केवल तारीख वाले मानों में TZID पैरामीटर नहीं होना चाहिए। RFC 5545, इवेंट घटक और समय-क्षेत्र पहचानकर्ता।

यह उदाहरणात्मक अंश केवल दो सीमा गुण दिखाता है, पूरा आयात योग्य कैलेंडर फ़ाइल नहीं:

DTSTART;VALUE=DATE:20270618
DTEND;VALUE=DATE:20270619

नीचे दी गई निर्णय तालिका इस नियम को काल्पनिक प्रकाशन कार्यक्रमों पर लागू करती है। आखिरी कॉलम को पहली बाहर रखी गई तारीख के रूप में पढ़ें, किसी दूसरे प्रकाशन दिवस के रूप में नहीं।

अपेक्षित अवधि शामिल आरंभ तिथि अनन्य समाप्ति तिथि
केवल 18 जून 18 जून, 2027 19 जून, 2027
18–20 जून, दोनों दिन शामिल 18 जून, 2027 21 जून, 2027
केवल 30 जून 30 जून, 2027 1 जुलाई, 2027

Mac Calendar में प्रकाशन दिवस बनाएँ

ऐसे कैलेंडर से शुरू करें जिसमें आप इवेंट बना सकते हों। इस काम के लिए Calendar के पूरे दिन वाले इवेंट नियंत्रण चाहिए; किसी प्रोग्रामिंग टूल की ज़रूरत नहीं है।

  1. Calendar खोलें और 18 जून, 2027 पर जाएँ।
  2. विंडो के ऊपर Day या Week चुनें।
  3. 18 जून के लिए घंटेवार ग्रिड के ऊपर वाले all-day क्षेत्र पर डबल-क्लिक करें।
  4. इवेंट का तटस्थ शीर्षक Sample publication day रखें।
  5. जाँचें कि चिह्न केवल 18 जून पर दिख रहा है।

Apple के अनुसार, Day या Week दृश्य में पूरे दिन वाले क्षेत्र पर डबल-क्लिक करके पूरे दिन का इवेंट बनाया जाता है। तारीखों पर खींचकर बहु-दिवसीय इवेंट बनाने का तरीका अलग से बताया गया है। इस उदाहरण के लिए, एक-दिवसीय तरीका अपनाएँ। Mac पर Calendar में पूरे दिन, कई दिनों या दोहराए जाने वाले इवेंट सेट करें।

दिख रहे कैलेंडर को अपनी पहली जाँच मानें: चिह्न अपेक्षित तारीख पर होना चाहिए और 19 जून तक नहीं बढ़ना चाहिए। अनन्य सीमा बताती है कि डेटा में अवधि को कैसे दर्शाया जाता है। इसका मतलब यह नहीं कि दिख रहे चिह्न को अगले दिन तक बढ़ाया जाए।

इवेंट निर्यात करें और उसकी तारीख की सीमाएँ देखें

कैलेंडर सूची में इवेंट का कैलेंडर चुनें, फिर File > Export > Export चुनें। बनी हुई .ics फ़ाइल को किसी सुविधाजनक स्थान पर सहेजें। इस प्रक्रिया में चुने गए कैलेंडर के इवेंट निर्यात होते हैं, इसलिए अगर कैलेंडर में कई इवेंट हैं तो फ़ाइल में कई इवेंट रिकॉर्ड होंगे। Apple इस निर्यात के लिए .ics फ़ॉर्मैट बताता है। Mac पर कैलेंडर आयात या निर्यात करें।

Finder में निर्यात की गई फ़ाइल चुनें और File > Open With का उपयोग करके उसे TextEdit जैसे टेक्स्ट एडिटर में खोलें। Apple इसे किसी एक फ़ाइल को खोलने के लिए ऐप चुनने का तरीका बताता है। Mac पर फ़ाइल खोलने के लिए ऐप चुनें।

Sample publication day खोजें, फिर उसके आसपास का इवेंट रिकॉर्ड देखें। उसकी आरंभ और समाप्ति विशेषताओं की तुलना ऊपर दिए गए उदाहरणात्मक अंश से करें। अन्य विशेषताएँ भी अपेक्षित हैं; तारीख के मानों और उनके प्रकारों पर ध्यान दें।

यदि पूरे दिन के इवेंट में न DTEND हो और न DURATION, तो मानक उसे एक दिन की अवधि देता है। इसलिए, स्पष्ट समाप्ति का न होना अपने आप में समस्या का संकेत नहीं है। RFC 5545, इवेंट घटक।

निर्यात की गई फ़ाइल को जाँच के लिए एक प्रति के रूप में इस्तेमाल करें। अगर दिख रहे इवेंट की तारीखें गलत हैं, तो उसे Calendar में ठीक करें और फिर से निर्यात करें। इससे आपकी जाँच उसी इवेंट से जुड़ी रहती है जिसे आपने वास्तव में बनाया है।

कैलेंडर तारीखों, समय-बिंदुओं, ऑफ़सेट और नामित समय-क्षेत्रों में अंतर करें

प्रकाशन दिवस को किसी दूसरे टूल में ले जाने से पहले, तय करें कि वह टूल किस प्रकार का मान अपेक्षित करता है। कैलेंडर पर दिखाई गई तारीख और टाइमस्टैम्प अलग-अलग सवालों के जवाब देते हैं।

अवधारणा उदाहरणात्मक मान यह किसकी पहचान करता है
कैलेंडर तारीख 2027-06-18 बिना घड़ी के समय वाला कैलेंडर दिवस
समय-बिंदु 2027-06-18T10:00:00Z समयरेखा का एक बिंदु
संख्यात्मक UTC ऑफ़सेट +02:00 स्थानीय समय और UTC के बीच का अंतर
नामित समय-क्षेत्र Europe/Paris ऐसा क्षेत्र जिसके नियम लागू ऑफ़सेट निर्धारित करते हैं

RFC 3339 समय-बिंदुओं के टाइमस्टैम्प निरूपण परिभाषित करता है, जिनमें संख्यात्मक ऑफ़सेट और UTC संकेतक Z शामिल हैं। इसमें स्पष्ट रूप से कहा गया है कि अंतरालों का वर्णन इसके दायरे से बाहर है। इसलिए, RFC 3339 टाइमस्टैम्प की एक जोड़ी के लिए भी अलग से तय करना होगा कि अंतिम बिंदु शामिल है या नहीं। RFC 3339, दायरा और तारीख/समय फ़ॉर्मैट।

उदाहरण के लिए, काल्पनिक टाइमस्टैम्प 2027-06-18T12:00:00+02:00 और 2027-06-18T10:00:00Z एक ही समय-बिंदु की पहचान करते हैं। इनमें से कोई भी प्रकाशन के पूरे दिन को नहीं दर्शाता। तारीख में समय और ऑफ़सेट जोड़ने से दर्ज की जा रही जानकारी बदल जाती है। RFC 3339, स्थानीय ऑफ़सेट।

नामित समय-क्षेत्र स्थानीय समय और लागू ऑफ़सेट की गणना के नियम देता है। IANA इन नियमों का रखरखाव करता है, जिनमें ऑफ़सेट में बदलाव और डेलाइट सेविंग का व्यवहार शामिल है; ऑपरेटिंग सिस्टम और सॉफ़्टवेयर विक्रेता उपयोगकर्ताओं तक इनके अपडेट पहुँचाते हैं। अलग-अलग तारीखों की सीमाएँ निकालते समय एक संख्यात्मक ऑफ़सेट नियमों के उस पूरे सेट की जगह नहीं ले सकता। IANA समय क्षेत्र।

कैलेंडर चिह्न के लिए कैलेंडर तारीख ही रखें। अगर बाद का कोई काम पूछे कि टाइमस्टैम्प वाली कौन-सी प्रकाशन प्रविष्टियाँ उस दिन में आती हैं, तो पहले वह नामित समय-क्षेत्र चुनें जो प्रकाशन दिवस को परिभाषित करता है, फिर उसी समय-क्षेत्र में दोनों सीमा समय-बिंदुओं की गणना करें।

Mac ऑटोमेशन उसी अवधि की गणना कैसे करे?

Apple Foundation का Date किसी कैलेंडर या समय-क्षेत्र से स्वतंत्र समय-बिंदु को दर्शाता है। जब आपका इनपुट केवल 18 जून हो, तब इसका नाम भ्रमित कर सकता है: किसी कैलेंडर तारीख को समय-बिंदु के रूप में पहचानने से पहले कैलेंडर का संदर्भ चाहिए। Apple कैलेंडर की गणना के लिए Calendar का उपयोग करने की सलाह देता है। Date।

ऑटोमेशन के लिए कैलेंडर प्रणाली और समय-क्षेत्र स्पष्ट रूप से तय करें। Foundation कैलेंडर का समय-क्षेत्र उसकी लिखने योग्य timeZone प्रॉपर्टी के माध्यम से उपलब्ध कराता है। इस चुनाव को स्पष्ट रखने से ऑटोमेशन की देखरेख करने वाले व्यक्ति को प्रकाशन दिवस की परिभाषा समझ आती है। Calendar.timeZone।

जब कोई समय-बिंदु अपेक्षित दिन के भीतर आता हो, तो Calendar.dateInterval(of: .day, for:) उस कैलेंडर घटक का आरंभ समय और अवधि प्राप्त करता है। यह मेथड वैकल्पिक परिणाम लौटाता है; ऑटोमेशन को विफलता संभालनी चाहिए, न कि चुपचाप कोई दूसरी तारीख चुन लेनी चाहिए। dateInterval(of:for:)।

यहाँ अंतिम बिंदु का एक अहम विवरण है: Apple DateInterval को एक बंद अंतराल के रूप में परिभाषित करता है, जिसमें दोनों अंतिम बिंदु शामिल होते हैं। प्रकाशन दिवस की अनन्य सीमा लागू करने के लिए, गणना की गई सीमाओं के साथ स्पष्ट तुलना करें: start <= instant && instant < end। यह सदस्यता का नियम है, पूरा प्रोग्राम नहीं। DateInterval।

यह मानकर न चलें कि हर स्थानीय दिन की शुरुआत सामान्य आधी रात को होती है। Apple का startOfDay(for:) दिन का पहला मौजूद क्षण लौटाता है: अगर दो आधी रातें हों तो पहली आधी रात चुनता है, और अगर आधी रात मौजूद न हो तो पहला मौजूद क्षण चुनता है। कैलेंडर से निकाली गई सीमाएँ इस अंतर को बनाए रखती हैं। startOfDay(for:)।

तारीख का दोबारा उपयोग करने से पहले सीमा जाँचें

टाइमस्टैम्प आधारित वर्कफ़्लो के लिए, गणना की गई अवधि पर यह तीन-बिंदु स्वीकृति जाँच लागू करें। अपेक्षित परिणाम स्पष्ट अनन्य-अंत तुलना से सीधे निकलते हैं।

जाँचा जाने वाला समय-बिंदु अपेक्षित सदस्यता
दिन की शुरुआत का ठीक वही समय शामिल
दोनों सीमाओं के बीच का कोई भी समय-बिंदु शामिल
अगले दिन की शुरुआत का ठीक वही समय बाहर

यह जाँच यह भी बताती है कि 23:59:59 जैसा मनगढ़ंत अंतिम समय क्यों ज़रूरी नहीं है। अगर इनपुट में सेकंड के भिन्नांश हों, तो चुनी गई कटऑफ़ के बाद का कोई मान अगले दिन की सीमा से पहले भी हो सकता है। अनन्य सीमा से तुलना करने पर “आखिरी क्षण” के लिए टाइमस्टैम्प की सटीकता चुनने की ज़रूरत नहीं पड़ती।

Mac डेस्कटॉप के काम के लिए, अंत में जाँचें कि Sample publication day केवल 18 जून पर है और निर्यात में तारीख का निरूपण उसी अवधि से मेल खाता है। जब बाद में यह दिन टाइमस्टैम्प फ़िल्टर बने, तो चुना हुआ कैलेंडर और समय-क्षेत्र बनाए रखें, शुरुआत शामिल करें और अगले दिन की सीमा बाहर रखें।

स्रोत