Ниже приводятся некоторые примеры использования дат. Подробнее см. Date Programming.
using namespace boost::gregorian;
date weekstart(2002,Feb,1);
date weekend = weekstart + weeks(1);
date d2 = d1 + days(5);
date today = day_clock::local_day();
if (d2 >= today) {}
date_period thisWeek(d1,d2);
if (thisWeek.contains(today)) {}
day_iterator itr(weekstart);
while (itr <= weekend) {
std::cout << (*itr) << std::endl;
++itr;
}
std::stringstream ss("2004-Jan-1");
ss >> d3;
date d5 = next_weekday(d4, Sunday);
typedef nth_day_of_the_week_in_month nth_dow;
nth_dow labor_day(nth_dow::first,Monday, Sep);
date d6 = labor_day.get_date(2004);
Ниже приведен некоторый пример кода с использованием времени. Подробнее см. Time Programming.
using namespace boost::posix_time;
date d(2002,Feb,1);
ptime t1(d, hours(5)+nanosec(100));
ptime t2 = t1 - minutes(4)+seconds(2);
ptime now = second_clock::local_time();
date today = now.date();
date tomorrow = today + date_duration(1);
ptime tomorrow_start(tomorrow);
std::stringstream ss("2004-Jan-1 05:21:33.20");
ss >> t2;
time_iterator titr(now,hours(1));
for (; titr < tomorrow_start; ++titr) {
std::cout << (*titr) << std::endl;
}
Ниже приводится примерный код с использованием времени. Подробнее см. Local Time Programming.
using namespace boost::local_time;
tz_database tz_db;
tz_db.load_from_file("date_time_zonespec.csv");
time_zone_ptr nyc_tz = tz_db.time_zone_from_region("America/New_York");
time_zone_ptr phx_tz(new posix_time_zone("MST-07:00:00"));
local_date_time phx_departure(date(2005, Apr, 2), hours(23), phx_tz,
local_date_time::NOT_DATE_TIME_ON_ERROR);
time_duration flight_length = hours(4) + minutes(30);
local_date_time phx_arrival = phx_departure + flight_length;
local_date_time nyc_arrival = phx_arrival.local_time_in(nyc_tz);
std::cout << nyc_arrival << std::endl;