C++ में दिनांक और समय के साथ कार्य: पूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ में दिनांक और समय के साथ कार्य करना: क्लासिक से आधुनिक मानक तक



दिनांक और समय का प्रबंधन सॉफ्टवेयर विकास में प्रमुख कार्यों में से एक है। चाहे वह इवेंट लॉगिंग हो, डेडलाइन की गणना हो, टाइमर के साथ कार्य हो या डेटा विश्लेषण हो — विश्वसनीय टूलकिट के बिना काम नहीं चल सकता। C++ में इसके लिए कई दृष्टिकोण हैं: क्लासिक <ctime> लाइब्रेरी से लेकर आधुनिक <chrono> तक, जो C++11 में आया और C++20 में काफी विस्तारित हुआ। इस लेख में हम दिनांक और समय के साथ कार्य करने की मुख्य विधियों पर चर्चा करेंगे, व्यावहारिक उदाहरण देंगे और सामान्य गलतियों से बचने का तरीका बताएंगे।



1. क्लासिक दृष्टिकोण: <ctime> लाइब्रेरी



<ctime> लाइब्रेरी C भाषा से C++ में आई है। यह कैलेंडर समय के साथ कार्य करने के लिए सरल लेकिन सीमित साधन प्रदान करती है। मुख्य प्रकार: std::time_t (1 जनवरी 1970 से सेकंड में पूर्णांक) और std::tm (वर्ष, महीना, दिन, घंटे, मिनट, सेकंड आदि फील्ड वाली संरचना)।



उदाहरण 1: वर्तमान समय प्राप्त करना और फ़ॉर्मेटिंग



#include <iostream>#include <ctime>

int main() { // वर्तमान समय प्राप्त करें std::time_t now = std::time(nullptr); // स्थानीय समय में बदलें std::tm* local = std::localtime(&now); // "YYYY-MM-DD HH:MM:SS" फॉर्मेट में आउटपुट करें char buffer[80]; std::strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", local); std::cout << "वर्तमान समय: " << buffer << std::endl; return 0;}


<ctime> के मुख्य फंक्शन:

  • std::time() — वर्तमान कैलेंडर समय लौटाता है।
  • std::localtime() — time_t को tm संरचना में बदलता है, जो स्थानीय समय दर्शाती है।
  • std::gmtime() — वही, लेकिन UTC (समन्वित सार्वत्रिक समय) के लिए।
  • std::mktime() — उल्टा रूपांतरण: tm से time_t में।
  • std::difftime() — दो समय बिंदुओं के बीच सेकंड में अंतर की गणना करता है।
  • std::strftime() — दिए गए टेम्पलेट के अनुसार दिनांक और समय को स्ट्रिंग में फ़ॉर्मेट करता है।


कमियां: लाइब्रेरी समय क्षेत्रों को ध्यान में नहीं रखती (स्थानीय और UTC को छोड़कर), उच्च सटीकता का समर्थन नहीं करती (केवल सेकंड), और tm संरचना टाइप-सेफ नहीं है (उदाहरण के लिए, वर्ष 1900 से गिना जाता है, महीना 0 से 11 तक)।



2. आधुनिक मानक: <chrono> लाइब्रेरी (C++11 और नया)



C++11 से शुरू करके, मानक लाइब्रेरी में <chrono> जोड़ा गया — समय के साथ कार्य करने के लिए एक टाइप-सेफ और उच्च-सटीकता वाली लाइब्रेरी। यह तीन मुख्य अवधारणाओं पर काम करती है: अवधि (duration), समय बिंदु (time_point) और घड़ी (clock)।



घड़ियों के प्रकार:

  • std::chrono::system_clock — सिस्टम समय, कैलेंडर से जुड़ा (time_t में बदला जा सकता है)।
  • std::chrono::steady_clock — मोनोटोनिक घड़ी, अंतराल मापने के लिए आदर्श (समायोजन के अधीन नहीं)।
  • std::chrono::high_resolution_clock — अधिकतम उपलब्ध रिज़ॉल्यूशन वाली घड़ी (अक्सर steady_clock का पर्याय)।


उदाहरण 2: ऑपरेशन के निष्पादन समय का मापन



#include <iostream>#include <chrono>#include <thread>

int main() { // शुरुआत नोट करें auto start = std::chrono::steady_clock::now(); // कार्य का अनुकरण std::this_thread::sleep_for(std::chrono::milliseconds(500)); // समाप्ति नोट करें auto end = std::chrono::steady_clock::now(); // अंतर की गणना करें auto duration = end - start; // परिणाम प्रिंट करें std::cout << "कार्य पूरा हुआ" << std::endl; return 0;}

ब्लॉग

पुस्तक अनुशंसाएँ