/* This example prints all the dates in a month. It demonstrates * the use of iterators as well as functions of the gregorian_calendar * * Output: * Enter Year: 2002 * Enter Month(1..12): 2 * 2002-Feb-01 [Fri] * 2002-Feb-02 [Sat] * 2002-Feb-03 [Sun] * 2002-Feb-04 [Mon] * 2002-Feb-05 [Tue] * 2002-Feb-06 [Wed] * 2002-Feb-07 [Thu] */ #include "boost/date_time/gregorian/gregorian.hpp" #include int main() { using namespace boost::gregorian; std::cout << "Enter Year: "; greg_year::value_type year; greg_month::value_type month; std::cin >> year; std::cout << "Enter Month(1..12): "; std::cin >> month; try { //Use the calendar to get the last day of the month greg_day::value_type eom_day = gregorian_calendar::end_of_month_day(year,month); date endOfMonth(year,month,eom_day); //construct an iterator starting with firt day of the month day_iterator ditr(date(year,month,1)); //loop thru the days and print each one for (; ditr <= endOfMonth; ++ditr) { #if defined(BOOST_DATE_TIME_NO_LOCALE) std::cout << to_simple_string(*ditr) << " [" #else std::cout << *ditr << " [" #endif << ditr->day_of_week() << " week: " << ditr->week_number() << "]" << std::endl; } } catch(std::exception& e) { std::cout << "Error bad date, check your entry: \n" << " Details: " << e.what() << std::endl; } return 0; } /* Copyright 2001-2004: CrystalClear Software, Inc * http://www.crystalclearsoftware.com * * Subject to the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) */