进行程序检查当前日期是否为预期日期

时间:2018-10-03 18:44:55

标签: c++

有没有一种方法可以让c ++等到预期的日期才能开始处理其余的代码?

我不希望它使用诸如wait或sleep之类的东西等待,实际上我希望它仅使用if语句进行检查。极差的伪代码示例:

if current_date == intended_date
    cout << "Happy Birthday";
end 

我希望程序仅在满足生日条件时才说生日快乐。我知道您可以使用std :: chrono :: system_clock :: now()获取当前日期。但是,我不知道如何设置意向日期的格式,以便它可以对照当前日期进行检查。

1 个答案:

答案 0 :(得分:0)

我认为标准模块chrono和iomanip为您提供所需的东西:

#include <chrono>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
#include <list>

int main()
{
    auto currentTime = std::chrono::system_clock::to_time_t(
        std::chrono::system_clock::now()
    );

    std::stringstream timeStream;
    timeStream << std::put_time(std::localtime(&currentTime), "%m-%d");

    const std::list<std::string> birthdays = {"12-08", "10-03"};
    for (auto& date : birthdays)
    {
        if(timeStream.str() == date)
        {
            std::cout << "Happy birthday!!\n";
        }
        else
        {
            std::cout << "Try another day!!\n";
        }
    }
    return 0;
}