पहला तरीका: C-स्टाइल time.h फंक्शन्स
time() - वर्तमान कैलेंडर समय ढूंढने के लिए उपयोग किया जाता है और समय संग्रहीत करने के लिए अंकगणितीय डेटा प्रकार है
localtime() - डेट और समय के साथ संरचना भरने के लिए उपयोग किया जाता है
asctime() - लोकल समय को मानव-पठनीय प्रारूप में बदलता है
प्रारूप: Day Month Date Hour:Minute:Second Year
उदाहरण
#include <iostream>
#include <ctime> // डेट और समय के साथ काम करने के लिए
using namespace std;
int main() {
time_t t; // time() में आर्गुमेंट के रूप में पास किया गया t
struct tm *tt; // localtime() के लिए वेरिएबल घोषित
time(&t); // time() को आर्गुमेंट पास करना
tt = localtime(&t);
cout << "Current Day, Date and Time is = " << asctime(tt);
return 0;
}
आउटपुट
Current Day, Date and Time is = Tue Jul 23 19:05:50 2019
दूसरा तरीका: C++11 Chrono लाइब्रेरी
Chrono लाइब्रेरी का उपयोग सेकंड, मिलीसेकंड, माइक्रोसेकंड और नैनोसेकंड में बीते समय को मापने के लिए किया जाता है।
उदाहरण
#include <chrono>
#include <ctime>
#include <iostream>
using namespace std;
int main() {
auto now = chrono::system_clock::now();
time_t tt = chrono::system_clock::to_time_t(now);
cout << ctime(&tt) << endl;
return 0;
}
आउटपुट
Tue Jul 23 19:05:50 2019
तीसरा तरीका: C-स्टाइल time() और ctime()
उदाहरण
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
time_t now = time(NULL);
printf("%s", ctime(&now)); // ctime() दिया गया समय लौटाता है
return 0;
}
आउटपुट
Tue Jul 23 20:14:42 2019
आधुनिक C++ (C++20) दृष्टिकोण
#include <chrono>
#include <format>
#include <iostream>
using namespace std;
int main() {
auto now = chrono::system_clock::now();
auto local = chrono::zoned_time{chrono::current_zone(), now};
cout << format("{:%Y-%m-%d %H:%M:%S}", local) << endl;
return 0;
}
तुलना
| तरीका | मानक | सटीकता | थ्रेड-सेफ | टाइमज़ोन |
|---|---|---|---|---|
| time.h (ctime) | C89/C++98 | सेकंड | नहीं (स्टैटिक बफर) | लोकल |
| chrono + ctime | C++11 | नैनोसेकंड | हां | लोकल |
| chrono + format | C++20 | नैनोसेकंड | हां | कॉन्फ़िगरेबल |
उच्च-सटीकता टाइमिंग
// बेंचमार्किंग के लिए
auto start = chrono::high_resolution_clock::now();
// ... कोड जिसे मापना है ...
auto end = chrono::high_resolution_clock::now();
auto duration = chrono::duration_cast<chrono::microseconds>(end - start);
cout << "Time: " << duration.count() << " microseconds" << endl;