我正在尝试编写一个函数,该函数将使我在两个时间戳之间存在一系列天数。
例如
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;
}