Giriş
Şu satırları dahil ederiz.
Constructor - char *
Şöyle yaparız.
Daha sonra facet bir locale nesnesine geçilir. Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şu satırları dahil ederiz.
#include <boost/date_time.hpp>
#include <boost/date_time/gregorian/gregorian_io.hpp>
boost::gregorian::date nesnesini stream'den okumak için kullanılır.Constructor - char *
Şöyle yaparız.
auto facet
= new boost::gregorian::date_input_facet ("%m/%d/%Y");
KullanımDaha sonra facet bir locale nesnesine geçilir. Şöyle yaparız.
std::locale fmt (std::locale::classic(),facet);
locale ise bir stream' geçilir ve stream'den okuma yapılır.std::istringstream is = ...;
is.imbue (fmt);
boost::gregorian::date date;
is >> date;
ÖrnekŞöyle yaparız.
const std::vector<std::locale> Date::date_formats = {
std::locale(std::locale::classic(), new date_input_facet("%Y-%m-%d")),
std::locale(std::locale::classic(), new date_input_facet("%Y/%m/%d")),
std::locale(std::locale::classic(), new date_input_facet("%m-%d-%Y")),
std::locale(std::locale::classic(), new date_input_facet("%m/%d/%Y")),
std::locale(std::locale::classic(), new date_input_facet("%d-%b-%Y")),
std::locale(std::locale::classic(), new date_input_facet("%Y%m%d")),
};
ÖrnekŞöyle yaparız.
std::string str = "20161101";
std::string format = "%Y%m%d";
const std::locale loc = std::locale(std::locale(),
new boost::gregorian::date_input_facet(format.c_str()));
std::istringstream is (str);
is.imbue (loc);
boost::gregorian::date d;
is.exceptions(~std::ios::iostate::_S_goodbit);
is >> d;
Eğer günü yazdırırsakstd::cout << d;
Çıktı olarak şunu alırız2016-Nov-01
ÖrnekŞöyle yaparız.
const std::locale fmt (std::locale::classic(),
new boost::gregorian::date_input_facet("%m/%d/%Y"));
boost::gregorian::date MMDDYYYYasDate( const std::string& str)
{
std::istringstream is(str);
is.imbue (fmt);
boost::gregorian::date date;
is >> date;
return date;
}
Hiç yorum yok:
Yorum Gönder