date_time etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
date_time etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Temmuz 2016 Perşembe

boost date_time

Gregorian Sınıfları
date_time Gregorian Sınıfları yazısına taşıdım.

Posix Time Sınıfları
ptime, time_duration, time_period, time_iterator gibi sınıflar mevcut.

microseconds sınıfı
boost Time Duration Sınıfları yazısına taşıdım.

microsec_clock sınıfı
local_time metodu

Şöyle yaparız.
boost::posix_time::microsec_clock::local_time()
milliseconds sınıfı
boost Time Duration Sınıfları yazısına taşıdım.

ptime Sınıfı
date_time ptime Sınıfı yazısına taşıdım

second sınıfı
boost Time Duration Sınıfları yazısına taşıdım.

second_clock sınıfı
local_time metodu
Şöyle yaparız.
ptime p = second_clock::local_time();
time_duration sınıfı
boost Time Duration Sınıfları yazısına taşıdım.

time_facet sınıfı
Şöyle yaparız.
boost::posix_time::ptime epoch = ...;
time_facet * facet = new time_facet("...");
std::ostringstream stream;
stream.imbue(std::locale(stream.getloc(), facet));
stream << epoch ;
Local Time Sınıfları
posix_time_zone, tz_database, local_sec_clock gibi sınıflar mevcut.

local_date_time Sınıfı
date + time + timezone bilgisi içerir. Şöyle yaparız.
posix_time ptime = ...;
time_zone_ptr ptr = ...;
local_date_time mytime (ptime, ptr);
posix_time_zone Sınıfı
Şöyle yaparız.
time_zone_ptr zone (new posix_time_zone(...));
has_dst metodu
Şöyle yaparız.
zone->has_dst();
tz_database Sınıfı
constructor
Şöyle yaparız.
tz_database db;
load_from_file metodu
Şöyle yaparız.
db.load_from_file("date_time_zonespec.csv"); 
time_zone_from_region metodu
Şöyle yaparız.
time_zone_ptr ptz = db.time_zone_from_region("America/New_York");





21 Temmuz 2016 Perşembe

boost Time Duration Sınıfları

Giriş
Posix Time başlığı altında şu sınıflar var. time_duration, hours, minutes,seconds, milliseconds,nanoseconds

microseconds sınıfı
Şu satırı dahil ederiz.
#include <boost/date_time/posix_time/posix_time.hpp>
Constructor
Şöyle yaparız.
uint64_t val = ...;
boost::posix_time::microseconds (val);
milliseconds sınıfı
Constructor
Şöyle yaparız.
long ms = ...;
boost::posix_time::milliseconds(ms);
second sınıfı
Şu satırı dahil ederiz.

#include <boost/date_time/posix_time/posix_time.hpp>
Constructor
Şöyle yaparız.

boost::posix_time::seconds(5)
time_duration sınıfı
Şu satırı dahil ederiz.
#include <boost/date_time/posix_time/posix_time_duration.hpp>
Constructor - hour , minute, second
Şöyle yaparız
time_duration lockTimeout(0, 0, 10); // h,m,s
Constructor - microseconds
Şöyle yaparız
uint64_t val = static_cast<uint64_t>( 5000000000 * 1000000 );
time_duration t = boost::posix_time::microseconds (val);
Constructor - ptime arithmetic
Şöyle yaparız.
ptime pt = ...;
ptime timet_start = ...;
time_duration diff = pt - timet_start;
operator <<
Şöyle yaparız.
uint64_t val = static_cast<uint64_t>( 5000000000 * 1000000 );
std::cout << val << std::endl;
time_duration t = boost::posix_time::microseconds( val );
std::cout << t << std::endl;
Çıktı olarak şunu alırız.
5000000000000000
1388888:53:20
Şöyle hesaplarız.
1388888*3600+53*60+20 = 5000000000000000

total_milliseconds metodu
Şöyle yaparız
diff.total_milliseconds();
total_seconds metodu
İçi şöyledir. int32_t döndüğü için büyük sayılarda hataya sebep olabilir.
sec_type total_seconds() const
{
  return static_cast<sec_type>(ticks() / ticks_per_second());
}
Şöyle yaparız.
boost::posix_time::ptime time1 = ...;;
boost::posix_time::ptime epoch = ...;

time_duration diff = time1-epoch;
cout << diff.total_seconds();