Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r70987 - in branches/release/libs/date_time/example: gregorian local_time posix_time tutorial
From: marshall_at_[hidden]
Date: 2011-04-04 19:53:08


Author: marshall
Date: 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
New Revision: 70987
URL: http://svn.boost.org/trac/boost/changeset/70987

Log:
Merge date/time fixes to release. Fixes #4920
Properties modified:
   branches/release/libs/date_time/example/gregorian/days_between_new_years.cpp (contents, props changed)
   branches/release/libs/date_time/example/gregorian/days_since_year_start.cpp (contents, props changed)
   branches/release/libs/date_time/example/gregorian/days_till_new_year.cpp (contents, props changed)
   branches/release/libs/date_time/example/gregorian/month_add.cpp (contents, props changed)
   branches/release/libs/date_time/example/local_time/flight.cpp (contents, props changed)
   branches/release/libs/date_time/example/local_time/local_date_time.cpp (contents, props changed)
   branches/release/libs/date_time/example/posix_time/print_hours.cpp (contents, props changed)
   branches/release/libs/date_time/example/posix_time/time_math.cpp (contents, props changed)
   branches/release/libs/date_time/example/tutorial/io_tutorial.cpp (contents, props changed)
Text files modified:
   branches/release/libs/date_time/example/gregorian/days_between_new_years.cpp | 7 ++++---
   branches/release/libs/date_time/example/gregorian/days_since_year_start.cpp | 4 ++--
   branches/release/libs/date_time/example/gregorian/days_till_new_year.cpp | 2 +-
   branches/release/libs/date_time/example/gregorian/month_add.cpp | 16 +++++++++++-----
   branches/release/libs/date_time/example/local_time/flight.cpp | 28 +++++++++++++++++++---------
   branches/release/libs/date_time/example/local_time/local_date_time.cpp | 4 ++--
   branches/release/libs/date_time/example/posix_time/print_hours.cpp | 8 ++++----
   branches/release/libs/date_time/example/posix_time/time_math.cpp | 2 +-
   branches/release/libs/date_time/example/tutorial/io_tutorial.cpp | 2 +-
   9 files changed, 45 insertions(+), 28 deletions(-)

Modified: branches/release/libs/date_time/example/gregorian/days_between_new_years.cpp
==============================================================================
--- branches/release/libs/date_time/example/gregorian/days_between_new_years.cpp (original)
+++ branches/release/libs/date_time/example/gregorian/days_between_new_years.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -3,10 +3,11 @@
  * New Years day of this year, and days until next New Years day.
  *
  * Expected results:
- * Adding together both durations will produce 366 (365 in a leap year).
+ * Adding together both durations will produce 365 (366 in a leap year).
  */
-#include <iostream>
+
 #include "boost/date_time/gregorian/gregorian.hpp"
+#include <iostream>
 
 int
 main()
@@ -25,7 +26,7 @@
   std::cout << "Days until next Jan 1: " << days_until_year_start.days()
             << std::endl;
   return 0;
-};
+}
 
 
 /* Copyright 2001-2004: CrystalClear Software, Inc

Modified: branches/release/libs/date_time/example/gregorian/days_since_year_start.cpp
==============================================================================
--- branches/release/libs/date_time/example/gregorian/days_since_year_start.cpp (original)
+++ branches/release/libs/date_time/example/gregorian/days_since_year_start.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -1,6 +1,6 @@
 
-#include <iostream>
 #include "boost/date_time/gregorian/gregorian.hpp"
+#include <iostream>
 
 int
 main()
@@ -14,7 +14,7 @@
   std::cout << "Days since Jan 1: " << days_since_year_start.days()
             << std::endl;
   return 0;
-};
+}
 
 /* Copyright 2001-2004: CrystalClear Software, Inc
  * http://www.crystalclearsoftware.com

Modified: branches/release/libs/date_time/example/gregorian/days_till_new_year.cpp
==============================================================================
--- branches/release/libs/date_time/example/gregorian/days_till_new_year.cpp (original)
+++ branches/release/libs/date_time/example/gregorian/days_till_new_year.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -15,7 +15,7 @@
   
   std::cout << "Days till new year: " << dd.days() << std::endl;
   return 0;
-};
+}
 
 /* Copyright 2001-2004: CrystalClear Software, Inc
  * http://www.crystalclearsoftware.com

Modified: branches/release/libs/date_time/example/gregorian/month_add.cpp
==============================================================================
--- branches/release/libs/date_time/example/gregorian/month_add.cpp (original)
+++ branches/release/libs/date_time/example/gregorian/month_add.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -17,7 +17,7 @@
   date d2 = d + months(1);
   date d3 = d - months(1);
   std::cout << "Today is: " << to_simple_string(d) << ".\n"
- << "One month from today will be: " << to_simple_string(d2)
+ << "One month from today will be: " << to_simple_string(d2) << ".\n"
             << "One month ago was: " << to_simple_string(d3)
             << std::endl;
   std::cout << "******** Warning read this ***********************\n";
@@ -31,14 +31,20 @@
             << std::endl;
 
   std::cout << "\nSo what does this mean? It means the result of adding months is order\n"
- << "dependent, non-communitive, and may create problems for applications.\n"
+ << "dependent, non-commutative, and may create problems for applications.\n"
             << "Consider: \n"
- << "Jan 30, 2004 + (1 month) + (1 month) != Jan 29, 2004 + (2 months)\n"
- << "Why not? Because Jan 30, 2004 + 1 month is Feb 29 + 1 month is Mar 29th.\n"
- << "while Jan 30, 2004 + 2 months is Mar 29th.\n"
+ << "Jan 30, 2004 + (1 month) + (1 month) != Jan 30, 2004 + (2 months)\n"
+ << "Why not? Because Jan 30, 2004 + 1 month is Feb 29 + 1 month is Mar 31st.\n"
+ << "while Jan 30, 2004 + 2 months is Mar 30th.\n"
             << "All of this clears up as long as all the starting dates before the 28th of\n"
             << "the month -- then all the behavior follows classical mathematical rules.\n";
   
+ date d6(2004, Jan, 30);
+ date d7 = d6 + months(1) + months(1);
+ date d8 = d6 + months(2);
+ std::cout << "2004-01-30 + (1 month) + (1 month) is: " << to_simple_string(d7) << ".\n"
+ << "2004-01-30 + (2 months) is: " << to_simple_string(d8)
+ << std::endl;
 
   return 0;
 }

Modified: branches/release/libs/date_time/example/local_time/flight.cpp
==============================================================================
--- branches/release/libs/date_time/example/local_time/flight.cpp (original)
+++ branches/release/libs/date_time/example/local_time/flight.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -5,7 +5,7 @@
 /* This example shows a program that calculates the arrival time of a plane
  * that flys from Phoenix to New York. During the flight New York shifts
  * into daylight savings time (Phoenix doesn't because Arizona doesn't use
- * dst).
+ * DST).
  *
  *
  */
@@ -20,24 +20,34 @@
   //setup some timezones for creating and adjusting local times
   //This user editable file can be found in libs/date_time/data.
   tz_database tz_db;
- tz_db.load_from_file("date_time_zonespec.csv");
+ try {
+ tz_db.load_from_file("../../data/date_time_zonespec.csv");
+ }catch(data_not_accessible dna) {
+ std::cerr << "Error with time zone data file: " << dna.what() << std::endl;
+ exit(EXIT_FAILURE);
+ }catch(bad_field_count bfc) {
+ std::cerr << "Error with time zone data file: " << bfc.what() << std::endl;
+ exit(EXIT_FAILURE);
+ }
   time_zone_ptr nyc_tz = tz_db.time_zone_from_region("America/New_York");
- //Use a
+ //Use a newly created time zone rule
   time_zone_ptr phx_tz(new posix_time_zone("MST-07:00:00"));
 
- //local departure time in phoenix is 11 pm on april 2 2005
- // (ny changes to dst on apr 3 at 2 am)
- local_date_time phx_departure(date(2005, Apr, 2), hours(23),
+ //local departure time in Phoenix is 11 pm on March 13 2010
+ // (NY changes to DST on March 14 at 2 am)
+ local_date_time phx_departure(date(2010, Mar, 13), hours(23),
                                 phx_tz,
                                 local_date_time::NOT_DATE_TIME_ON_ERROR);
+ local_date_time nyc_departure = phx_departure.local_time_in(nyc_tz);
 
   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 << "departure phx time: " << phx_departure << std::endl;
- std::cout << "arrival phx time: " << phx_arrival << std::endl;
- std::cout << "arrival nyc time: " << nyc_arrival << std::endl;
+ std::cout << "departure PHX time: " << phx_departure << std::endl;
+ std::cout << "departure NYC time: " << nyc_departure << std::endl;
+ std::cout << "arrival PHX time: " << phx_arrival << std::endl;
+ std::cout << "arrival NYC time: " << nyc_arrival << std::endl;
 
 }
 

Modified: branches/release/libs/date_time/example/local_time/local_date_time.cpp
==============================================================================
--- branches/release/libs/date_time/example/local_time/local_date_time.cpp (original)
+++ branches/release/libs/date_time/example/local_time/local_date_time.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -28,10 +28,10 @@
   std::locale loc(std::locale::classic(), timefacet);
   
   std::cout << ny_time << std::endl;
- // 2004-Aug-30 00:00:00 EDT
+ // 2004-Aug-30 10:00:00 EDT
   std::cout.imbue(loc);
   std::cout << ny_time << std::endl;
- // 2004-Aug-30 00:00:00 Eastern Daylight Time
+ // 2004-Aug-30 10:00:00 Eastern Daylight Time
 
   return 0;
 }

Modified: branches/release/libs/date_time/example/posix_time/print_hours.cpp
==============================================================================
--- branches/release/libs/date_time/example/posix_time/print_hours.cpp (original)
+++ branches/release/libs/date_time/example/posix_time/print_hours.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -29,16 +29,16 @@
   ptime now = second_clock::local_time();
   //Get the date part out of the time
   date today = now.date();
- date tommorrow = today + days(1);
- ptime tommorrow_start(tommorrow); //midnight
+ date tomorrow = today + days(1);
+ ptime tomorrow_start(tomorrow); //midnight
 
   //iterator adds by one hour
   time_iterator titr(now,hours(1));
- for (; titr < tommorrow_start; ++titr) {
+ for (; titr < tomorrow_start; ++titr) {
     std::cout << to_simple_string(*titr) << std::endl;
   }
   
- time_duration remaining = tommorrow_start - now;
+ time_duration remaining = tomorrow_start - now;
   std::cout << "Time left till midnight: "
             << to_simple_string(remaining) << std::endl;
   return 0;

Modified: branches/release/libs/date_time/example/posix_time/time_math.cpp
==============================================================================
--- branches/release/libs/date_time/example/posix_time/time_math.cpp (original)
+++ branches/release/libs/date_time/example/posix_time/time_math.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -13,7 +13,7 @@
   using namespace boost::gregorian;
 
   date d(2002,Feb,1); //an arbitrary date
- //construct a time by adding up some durations durations
+ //construct a time by adding up some durations
   ptime t1(d, hours(5)+minutes(4)+seconds(2)+milliseconds(1));
   //construct a new time by subtracting some times
   ptime t2 = t1 - hours(5)- minutes(4)- seconds(2)- milliseconds(1);

Modified: branches/release/libs/date_time/example/tutorial/io_tutorial.cpp
==============================================================================
--- branches/release/libs/date_time/example/tutorial/io_tutorial.cpp (original)
+++ branches/release/libs/date_time/example/tutorial/io_tutorial.cpp 2011-04-04 19:53:07 EDT (Mon, 04 Apr 2011)
@@ -141,7 +141,7 @@
   period_formatter per_formatter(period_formatter::AS_OPEN_RANGE,
                                  " to ", "from ", " exclusive", " inclusive" );
   period_parser per_parser(period_parser::AS_OPEN_RANGE,
- " to ", "from ", " exclusive" , "inclusive" );
+ " to ", "from ", " exclusive" , " inclusive" );
   
   // default output
   ss.str("");


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk