ट्रैक
/
C#
C#
/
अभ्यास
/
ब्यूटी सैलून की वैश्विक पहुँच
ब्यूटी सैलून की वैश्विक पहुँच

ब्यूटी सैलून की वैश्विक पहुँच

सीखने का अभ्यास

परिचय

समय

.NET में समय की अवधारणा DateTime स्ट्रक्चर के ज़रिए संभाली जाती है। स्थानीय समय और UTC के बीच बदलने के लिए रूटीन मौजूद हैं। TimeSpan की मदद से गणितीय गणनाएँ की जा सकती हैं।

समय क्षेत्र

TimeZoneInfo क्लास अलग-अलग समय क्षेत्रों के बीच के अंतर को संभालने के लिए रूटीन देती है। TimeZoneInfo क्लास में ऐसी मेथड भी हैं जो डेलाइट सेविंग समय से निपटना आसान बनाती हैं।

CultureInfo क्लास लोकेल पर निर्भर तारीख और समय के फॉर्मेट का समर्थन करती है।

क्रॉस-प्लेटफॉर्म कोडिंग का समर्थन करने के लिए RuntimeInformation क्लास की मदद से आप पता लगा सकते हैं कि आपका कोड किस ऑपरेटिंग सिस्टम पर चल रहा है, Linux, Windows या OSX।

निर्देश

इस अभ्यास में आप फिर सैलून की दुनिया में लौटते हैं (इसका परिचय सबसे पहले datetimes अभ्यास में मिला था)। आपके कई प्रोजेक्ट की तरह इस बार भी आपके एक और क्लाइंट को बहुत सफलता मिली है और उसने न्यूयॉर्क के अपने मुख्य ठिकाने के अलावा लंदन और पेरिस में भी शाखाएँ खोल ली हैं।

1. प्रशासकों के लिए UTC (सार्वभौमिक समन्वित समय) अपॉइंटमेंट के स्थानीय समय के समतुल्य समय दीजिए

static Appointment.ShowLocalTime() मेथड लागू कीजिए, जो एक UTC समय लेता है और उसे स्थानीय समय के रूप में लौटाता है।

// For a student in NY
Appointment.ShowLocalTime(new DateTime(2030, 7, 25, 13, 45, 0));
// => {2030, 7, 25, 8, 45, 0}

2. न्यूयॉर्क, लंदन और पेरिस में अपॉइंटमेंट तय कीजिए

हर सैलून अपनी बुकिंग खुद लेता है। जो समय डाला जाता है, वह सैलून की जगह के हिसाब से स्थानीय समय होता है। जैसे, अगर कोई न्यूयॉर्क के सैलून में किसी अपॉइंटमेंट के लिए 13:45 का समय डालता है, तो उसे उम्मीद होगी कि क्लाइंट दोपहर के भोजन के ठीक बाद पहुँचेगा। इसी तरह, अगर कोई लंदन के सैलून के लिए 13:45 का समय डालता है, तो उसे भी उम्मीद होगी कि क्लाइंट दोपहर के भोजन के ठीक बाद पहुँचेगा।

न्यूयॉर्क, लंदन और पेरिस के टाइम ज़ोन की आईडी जानना आपके काम आएगा।

Mac (OSX) और Linux पर ये हैं:

  • न्यूयॉर्क - America/New_York
  • लंदन - Europe/London
  • पेरिस - Europe/Paris

Windows पर ये हैं:

  • न्यूयॉर्क - Eastern Standard Time
  • लंदन - GMT Standard Time
  • पेरिस - W. Europe Standard Time

static Appointment.Schedule() ओवरलोड लागू कीजिए, जो एक लोकेशन और समय की स्ट्रिंग लेता है और अपॉइंटमेंट का UTC समय लौटाता है।

Schedule() को ऐसा बनाना होगा कि बन जाने के बाद कोड Linux, Windows और Mac पर चल सके। यह पहला अभ्यास है जहाँ आपको ऑपरेटिंग सिस्टम की चिंता करनी पड़ेगी। ऊपर बताए गए टाइम ज़ोन आईडी के अंतर को संभालने के लिए अलग-अलग कोड पथ रखने होंगे।

इनपुट में दी जाने वाली डेट-टाइम स्ट्रिंग के मान्य होने की गारंटी है।

Appointment.Schedule("7/25/2030 13:45:00", Location.Paris);
// => {2030, 7, 25, 11, 45, 0}

3. अपॉइंटमेंट से पहले तय अंतरालों पर क्लाइंट को अलर्ट दीजिए

static Appointment.GetAlertTime() लागू कीजिए, जो अपॉइंटमेंट से 1 दिन (early), 1 घंटा 45 मिनट (standard) और 30 मिनट (late) पहले अलर्ट दे।

Appointment.GetAlertTime(new DateTime(2030, 7, 25, 14, 45, 0), AlertLevel.Early);
// => {2030, 7, 24, 14, 45, 0}

4. अगर डेलाइट सेविंग हाल ही में बदली हो, तो हम क्लाइंट को याद दिलाने वाला संदेश भेजते हैं।

static Appointment.HasDaylightSavingChanged() लागू कीजिए, जो true लौटाता है अगर पिछले 7 दिनों में डेलाइट सेविंग सक्रिय या निष्क्रिय हुई हो।

Appointment.HasDaylightSavingChanged(new DateTime(2020, 3, 30, 14, 45, 0), Location.London);
// => true

5. अपॉइंटमेंट डालने के लिए स्थानीय डेट-टाइम प्रारूप का उपयोग कीजिए

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

Appointment.NormalizeDateTime() मेथड लागू कीजिए, जो उस जगह के अनुकूल प्रारूप में लिखी एक सही डेट-टाइम स्ट्रिंग लेता है और उसे DateTime ऑब्जेक्ट में बदल देता है। इसमें डेट-टाइम को UTC में बदलने की कोशिश नहीं की जाती।

अगर गलत प्रारूप डाला जाए, तो 1/1/1 वाला DateTime लौटाया जाना चाहिए।

Appointment.NormalizeDateTime("25/11/2019 13:45:00", Location.London);
// => {2019, 11, 25, 13, 45, 0}
Appointment.NormalizeDateTime("25/11/2019 13:45:00", Location.NewYork);
// => {1, 1, 1, 0, 0, 0}
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
C# Exercism

ब्यूटी सैलून की वैश्विक पहुँच शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और C# को 62 कॉन्सेप्ट178 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।