123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /* The following is a simple example that shows conversion of dates
- * to and from a std::string.
- *
- * Expected output:
- * 2001-Oct-09
- * 2001-10-09
- * Tuesday October 9, 2001
- * An expected exception is next:
- * Exception: Month number is out of range 1..12
- */
- #include "boost/date_time/gregorian/gregorian.hpp"
- #include <iostream>
- #include <string>
- int
- main()
- {
- using namespace boost::gregorian;
- try {
- // The following date is in ISO 8601 extended format (CCYY-MM-DD)
- std::string s("2001-10-9"); //2001-October-09
- date d(from_simple_string(s));
- std::cout << to_simple_string(d) << std::endl;
-
- //Read ISO Standard(CCYYMMDD) and output ISO Extended
- std::string ud("20011009"); //2001-Oct-09
- date d1(from_undelimited_string(ud));
- std::cout << to_iso_extended_string(d1) << std::endl;
-
- //Output the parts of the date - Tuesday October 9, 2001
- date::ymd_type ymd = d1.year_month_day();
- greg_weekday wd = d1.day_of_week();
- std::cout << wd.as_long_string() << " "
- << ymd.month.as_long_string() << " "
- << ymd.day << ", " << ymd.year
- << std::endl;
- //Let's send in month 25 by accident and create an exception
- std::string bad_date("20012509"); //2001-??-09
- std::cout << "An expected exception is next: " << std::endl;
- date wont_construct(from_undelimited_string(bad_date));
- //use wont_construct so compiler doesn't complain, but you wont get here!
- std::cout << "oh oh, you shouldn't reach this line: "
- << to_iso_string(wont_construct) << std::endl;
- }
- catch(std::exception& e) {
- std::cout << " Exception: " << 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)
- */
|