'Zaman' ile ne demek istediğini düşünmelisiniz. İki kavram, zaman noktaları ve süreleri vardır. Birbirinden zaman noktaları eklemek veya çıkarmak herhangi bir anlam ifade etmez. Süreleri ekleme ve çıkarma (bir süre ile sonuçlanan) yapmak mantıklıdır ve bir zaman noktasıyla bir süre eklemek ve çıkarmak için mantıklıdır (bir zaman noktasıyla sonuçlanır.
Çoğu zaman API'si harika bir şey yapmaz. iş iki kavramın birbirinden ayırt, ancak standart C++ <chrono>
kütüphanesi oldukça iyi. Burada
, bunları birbirine ekler suistimaller C
tm
türü kullanıcıdan bir kaç süreleri elde etmek için bazı kod ve sonra suistimaller tekrar
tm
sonucu vermek için
#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';
}
görünüyor. İyi şanslar!. – littleadv
Tek sorun şu üstbilgi dosyası ve – Emptypeace
zaman sınıfını kullanmanız gerektiğidir, bunun için zaman sınıfına 'gerek duymazsınız' .. bu zaman kaybı olur .. (hiçbir amaçlanmadı) .. ne Gereksinim oldukça basittir ve normal aritmetik işlemlerle kolayca elde edilebilir. – iKlsR