Quick actions

cmd+k|ctrl+k

Navigation

Languages

ПР 9

Snippet info

Language

Cpp

Visibility

public

Author

bilousov10a

Created

2021-06-03T18:39:36.586778Z

Updated

2021-06-03T18:45:05.366869Z


//Ввести две даты и вывести сообщение с информацией, какая из двух введенных дат более ранняя

#include <iostream>
#include <string>
#include <iomanip>
#include <sstream>
#include <ctime>
 
 
int main()
{
    std::string s1{ "19.01.2038" }, s2{ "26.05.1970" }; // даты начиная с 1970 года до 19.01.2038 года
    std::stringstream ss1, ss2;
    ss1.str(s1);
    ss2.str(s2);
    std::tm stm1{}, stm2{};
    ss1 >> std::get_time(&stm1, "%d.%m.%Y");
    ss2 >> std::get_time(&stm2, "%d.%m.%Y");
    stm1.tm_isdst = -1;
    stm2.tm_isdst = -1;
    std::cout << stm1.tm_mday << '.' << stm1.tm_mon << '.' << stm1.tm_year << std::endl;
    std::cout << stm2.tm_mday << '.' << stm2.tm_mon << '.' << stm2.tm_year << std::endl;
    time_t t1 = std::mktime(&stm1);
    time_t t2 = std::mktime(&stm2);
    if (t1 != -1 && t2 != -1)
    {
        double dif = std::difftime(t1, t2);
        std::cout << (dif < 0. ? "first" : dif > 0. ? "second" : "equal") << std::endl;
    }
    else
    {
        std::cerr << "Error\n";
    }
}
INFO