कैलेंडर और समय क्षेत्र
C++20 कैलेंडर प्रकारों का उपयोग करें
कैलेंडर और समय क्षेत्र, CoddyKit पर C++ Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह C++ Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
C++20 कैलेंडर प्रकार
C++20 ने <chrono> में समृद्ध कैलेंडर समर्थन जोड़ा है। अब आप पूर्णांकों को सँभालने के बजाय वर्षों, महीनों और दिनों को सीधे प्रकारों के रूप में व्यक्त कर सकते हैं।
year,month,day- पूरी तारीख के लिए
year_month_day
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
year y{2026};
std::cout << "Year value: " << static_cast<int>(y) << '\n';
return 0;
}कैलेंडर शाब्दिक
2026y और 15d जैसे कैलेंडर शाब्दिक तथा std::chrono::May जैसे नामित महीने तारीखों को स्वाभाविक रूप से पढ़ने योग्य बनाते हैं।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto y = 2026y;
auto d = 15d;
std::cout << static_cast<int>(y) << " / " << static_cast<unsigned>(d) << '\n';
return 0;
}तारीख बनाना
year_month_day बनाने के लिए तीनों हिस्सों को / संचालक से जोड़िए। क्रम वर्ष, महीना और दिन का होता है।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
year_month_day ymd = 2026y/May/30;
std::cout << static_cast<int>(ymd.year()) << "-"
<< static_cast<unsigned>(ymd.month()) << "-"
<< static_cast<unsigned>(ymd.day()) << '\n';
return 0;
}तारीखों का सत्यापन
year_month_day यह बता सकता है कि वह वास्तविक कैलेंडर तारीख है या नहीं। 30 फ़रवरी जैसी असंभव मानों को अस्वीकार करने के लिए ok() का उपयोग कीजिए।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
year_month_day good = 2026y/February/28;
year_month_day bad = 2026y/February/30;
std::cout << std::boolalpha << good.ok() << " " << bad.ok() << '\n';
return 0;
}sys_days
किसी तारीख को sys_days में बदलिए, जो युग से अब तक के दिनों की संख्या होती है। इससे आप दिनों पर गणना कर सकते हैं और तारीखों के बीच का अंतर निकाल सकते हैं।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
sys_days a = sys_days{2026y/May/30};
sys_days b = sys_days{2026y/May/20};
std::cout << "Days apart: " << (a - b).count() << '\n';
return 0;
}दिनों पर गणना
किसी sys_days में days{n} जोड़ने से समय n दिनों आगे बढ़ जाता है। इसके बाद आप उसे फिर से कैलेंडर तारीख में बदल सकते हैं।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
sys_days start = sys_days{2026y/May/30};
sys_days later = start + days{10};
year_month_day ymd = later;
std::cout << static_cast<unsigned>(ymd.day()) << "/"
<< static_cast<unsigned>(ymd.month()) << '\n';
return 0;
}सप्ताह का दिन
किसी तारीख का सप्ताह का कौन-सा दिन है, यह पता लगाने के लिए sys_days को weekday में बदलिए।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
weekday wd{sys_days{2026y/May/30}};
std::cout << "Weekday index (Sun=0): " << wd.c_encoding() << '\n';
return 0;
}महीने का अंतिम दिन
विशेष last संकेत किसी भी महीने का अंतिम दिन निकालता है और अधिवर्षों को अपने-आप सँभालता है।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
year_month_day_last eom = 2024y/February/last;
year_month_day ymd = eom;
std::cout << "Feb 2024 ends on day " << static_cast<unsigned>(ymd.day()) << '\n';
return 0;
}अधिवर्ष की जाँच
year प्रकार is_leap() उपलब्ध कराता है, इसलिए आपको विभाज्यता के नियम स्वयं याद रखने की आवश्यकता नहीं होती।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
std::cout << std::boolalpha;
std::cout << "2024 leap: " << year{2024}.is_leap() << '\n';
std::cout << "2026 leap: " << year{2026}.is_leap() << '\n';
return 0;
}समय-बिंदु से तारीख तक
आज की कैलेंडर तारीख प्राप्त करने के लिए system_clock के समय-बिंदु को days तक फ़्लोर कीजिए और उसे year_month_day में बदलिए।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto today = floor<days>(system_clock::now());
year_month_day ymd = sys_days{today};
std::cout << "Year is in range: " << (static_cast<int>(ymd.year()) > 2000) << '\n';
return 0;
}समय क्षेत्र
C++20 std::chrono::zoned_time और IANA डेटाबेस के माध्यम से समय क्षेत्रों का समर्थन भी जोड़ता है। यह सुविधा आपकी मानक लाइब्रेरी पर निर्भर करती है, लेकिन यह मॉडल सही स्थानीय-समय प्रदर्शन के लिए किसी समय-बिंदु को नामित क्षेत्र के साथ जोड़ता है।
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto now = system_clock::now();
auto days_part = floor<days>(now);
std::cout << "Have a UTC time point: " << (days_part.time_since_epoch().count() > 0) << '\n';
return 0;
}त्वरित जाँच
C++20 के कैलेंडर प्रकारों के बारे में अपनी समझ जाँचिए।
पुनरावृत्ति
आपने C++20 के कैलेंडर समर्थन के बारे में सीखा:
/निर्माता के साथyear,month,dayऔरyear_month_dayok()से सत्यापन औरis_leap()से अधिवर्ष की जाँच- दिनों पर गणना और सप्ताह के दिन का पता लगाने के लिए
sys_days - महीने के अंत के लिए
last, साथ हीzoned_timeका परिचय
इसके साथ Time और Chrono Library पाठ्यक्रम पूरा होता है।
एआई शिक्षक के साथ C++ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 51
- पाठ
- 203
अक्सर पूछे जाने वाले प्रश्न
क्या “कैलेंडर और समय क्षेत्र” पाठ निःशुल्क है?
हाँ — C++ Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “कैलेंडर और समय क्षेत्र” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“कैलेंडर और समय क्षेत्र” में मैं क्या सीखूँगा?
C++20 कैलेंडर प्रकारों का उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C++ Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या C++ Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C++ Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“कैलेंडर और समय क्षेत्र” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस C++ Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर C++ Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- अवधियाँ और घड़ियाँ
- समय-बिंदु
- कोड के प्रदर्शन को मापना
- कैलेंडर और समय क्षेत्र