आपको 'समय' से क्या मतलब है, इस पर विचार करने की आवश्यकता है। दो अवधारणाएं, समय बिंदु और अवधि हैं। यह एक दूसरे से समय बिंदु जोड़ने या घटाने का कोई मतलब नहीं है। यह अवधि को जोड़ने और घटाने के लिए समझ में आता है (जिसके परिणामस्वरूप अवधि होती है), और एक समय बिंदु के साथ एक अवधि जोड़ने और घटाने का अर्थ होता है (जिसके परिणामस्वरूप एक समय बिंदु होता है।
कई बार एपीआई बहुत अच्छा नहीं करते हैं काम दो अवधारणाओं के बीच फर्क है, लेकिन मानक सी ++ <chrono>
पुस्तकालय काफी अच्छी तरह से करता है।
यहाँ कुछ कोड है कि आदेश उपयोगकर्ता से एक जोड़े को अवधियों प्राप्त करने के लिए गाली सी tm
प्रकार, उन्हें एक साथ जोड़ता है, और इसके बाद गाली फिर tm
परिणाम आउटपुट करने के लिए।
#include <iostream> // cout, cin
#include <iomanip> // get_time, put_time
#include <chrono> // hours, minutes, duration_cast
int main() {
// input, get a couple durations to do arithmetic on
// technically std::tm represents a time point and get_time is supposed to
// parse a time point, but we treat the results as a duration
std::tm t;
std::cin >> std::get_time(&t, "%H:%M");
auto duration1 = std::chrono::hours(t.tm_hour) + std::chrono::minutes(t.tm_min);
std::cin >> std::get_time(&t, "%H:%M");
auto duration2 = std::chrono::hours(t.tm_hour) + std::chrono::minutes(t.tm_min);
// do the arithmetic
auto sum = duration1 + duration2;
// output
auto hours = std::chrono::duration_cast<std::chrono::hours>(sum);
auto minutes = std::chrono::duration_cast<std::chrono::minutes>(sum - hours);
t.tm_hour = hours.count();
t.tm_min = minutes.count();
std::cout << std::put_time(&t, "%H:%M") << '\n';
}
लगता है जैसे आप यह मिल गया है। सौभाग्य!। – littleadv
एकमात्र मुद्दा यह है कि मुझे निम्न शीर्षलेख फ़ाइल और समय वर्ग – Emptypeace
का उपयोग करने की आवश्यकता है, इसके लिए आपको समय की आवश्यकता नहीं है .. यह समय बर्बाद होगा .. (कोई इरादा नहीं है) .. आप क्या आवश्यकता बहुत बुनियादी है और सामान्य अंकगणितीय परिचालनों के साथ आसानी से हासिल किया जा सकता है। – iKlsR