Varolan bir programı C++'ye dönüştürüyorum ve burada Sybase zaman damgalarını işlemek gerekiyor. Bu zaman damgaları, bilgimin boost::posix_time::ptime
değişkeniyle en iyi şekilde işlenebileceği tarih ve saat bilgisi içerir. Koddaki birkaç yerde, yılı değişkenden almam gerekiyor.Boost ptime'dan yıl kazanın
Sorum şu: nasıl en verimli bir boost ptime değişkenden yıl çıkarabilir? Aşağıda, bir ostringstream
değişkeninin ve bir boost::gregorian::date
değişkeninin ek yükü ile üç satır satırının alındığı örnek bir programdır. boost belgelerine göre
:
Sınıf ptime bir zaman noktasının tarih kısmına arayüzü
gregorian::date
bağlıdır
ancak gregorian::date
bir temel sınıf olmak görünmüyor ptime
. Bir şekilde burada bir şey eksik.
Yılı ptime
'dan çıkarmak için daha kolay bir yol yok mu?
Örnek:
#include <boost/date_time/local_time/local_time.hpp>
#include <iostream>
int main()
{
boost::posix_time::ptime t(boost::posix_time::second_clock::local_time());
boost::gregorian::date d = t.date();
std::ostringstream os; os << d.year();
std::cout << os.str() << std::endl;
return 0;
}