我正在尝试编写一个函数,该函数将使我在两个时间戳之间存在一系列天数。

例如

getDays(int startTimestamp,int stopTimestamp);

输出将是
2011-11-05
2011-11-06
2011-11-07

无论如何,有没有做一些繁重的算法而以干净的方式进行此操作?

我对C++不熟悉,所以我只想确保在开始编写一个大函数之前,没有函数可以为我做这件事。

干杯

最佳答案

有一个while循环

std::vector<std::string> dateList;
while ( startTimestamp < stopTimestamp )
{

    //Use strftime to convert startTimestamp to your format
    // append to dateList
    //increment startTimestamp by 1 day depending on what unit it is
}
ojita文档。如果您的单位是time_t,则这是一个具体的示例
std::vector<std::string> getDays(time_t startTimestamp,time_t stopTimestamp)
{
    std::vector<std::string> dateList;
    char buffer[256];

    while ( startTimestamp < stopTimestamp )
    {
        struct tm * timeinfo;
        timeinfo = localtime ( &startTimestamp );

        strftime (buffer,256,"%Y-%m-%d",timeinfo);

        dateList.push_back( buffer );

        startTimestamp += 24 * 60 * 60;
    }

    return dateList;
}

10-06 02:12