Как это часто бывает, чтобы читать такие строки из .csv или .txt файлов, я хотел бы узнать простейший способ получить %d/%m%/%y
(или любой другой подобный формат) и преобразовать его в нечто подходящее для QuantLib::Date
объект constructor.Преобразование даты std :: string в объект QuantLib :: Date
Вот ниже примера кода:
#include <ql/quantlib.hpp>
#include <boost/timer.hpp>
#include <iostream>
#include <iomanip>
#include <boost/algorithm/string.hpp>
int main() {
boost::timer timer;
std::cout << std::endl;
std::string datesString = {
",17/10/2014,21/11/2014,19/12/2014,20/03/2015,19/06/2015,18/09/2015,18/12/2015,17/06/2016,"
};
std::vector<std::string> expiryDates;
boost::split(expiryDates, datesString, boost::is_any_of(","));
for(int i = 0; i < expiryDates.size(); i++)
{
std::cout << expiryDates[i] << std::endl;
}
// 17/10/2014
// 21/11/2014
// 19/12/2014
// 20/03/2015
// 19/06/2015
// 18/09/2015
// 18/12/2015
// 17/06/2016
// QuantLib::Date myQLDate(?);
return 0;
}
Это * * скрыто. +1 для вас, -1 для документации QuantLib. –
Правда. До одного или двух лет назад эта функция была довольно ограничена (она могла анализировать только несколько конкретных форматов, таких как ISO), поэтому она была специально скрыта по назначению ... Теперь, когда она полностью родовая, возможно, стоит перейти к ' Date' (либо в качестве конструктора, берущего две строки, либо как 'operator <<' для входных потоков). Это сделало бы его гораздо более доступным. –