c9f634b1d4
https://svn.boost.org/svn/boost/trunk ........ r43417 | danieljames | 2008-02-26 22:04:55 +0000 (Tue, 26 Feb 2008) | 2 lines Fix a link to Boost.Bimap. ........ r43418 | danieljames | 2008-02-26 22:07:25 +0000 (Tue, 26 Feb 2008) | 2 lines Change another link that's no longer in the repository to link to the website. ........ r43422 | danieljames | 2008-02-27 18:51:14 +0000 (Wed, 27 Feb 2008) | 1 line Fix broken copyright urls. Fixes #1573. ........ r43423 | danieljames | 2008-02-27 19:22:01 +0000 (Wed, 27 Feb 2008) | 1 line Fix incorrect links to copyright of the form 'http:#www.boost.org ........ [SVN r43425]
64 lines
1.9 KiB
C++
64 lines
1.9 KiB
C++
/* 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)
|
|
*/
|
|
|