• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (c) 2002,2003 CrystalClear Software, Inc.
2  * Use, modification and distribution is subject to the
3  * Boost Software License, Version 1.0. (See accompanying
4  * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
5  * Author: Jeff Garland
6  */
7 
8 //#include "date_time/testfrmwk.hpp"
9 #include <iostream>
10 #include "boost/date_time/gregorian/gregorian.hpp"
11 #include "boost/cstdint.hpp"
12 
13 int
main()14 main()
15 {
16 #if (defined(BOOST_MSVC) && (_MSC_VER < 1300))
17   //skipping tests here due to lack of operator<< support in msvc6
18   // TODO: this is a bit misleading: using STLport, this should work.
19   std::cout << "Skipping tests on MSVC6" << std::endl;
20 
21 #else
22 
23   std::cout << "int64_t  max:  "
24             << (std::numeric_limits<boost::int64_t>::max)()
25             << std::endl;
26   std::cout << "uint64_t max: "
27             << (std::numeric_limits<boost::uint64_t>::max)()
28             << std::endl;
29 
30 
31   boost::int64_t seconds_per_day = 60*60*24;
32   boost::int64_t microsec_per_sec = 1000000;
33   boost::int64_t microsec_per_day = seconds_per_day*microsec_per_sec;
34   std::cout << "microsec per day: "
35             << microsec_per_day
36             << std::endl;
37 
38   boost::uint64_t total_days = (std::numeric_limits<boost::int64_t>::max)() / microsec_per_day;
39 
40   std::cout << "Representable days: "
41             << total_days
42             << std::endl;
43 
44   boost::int64_t approx_years = total_days / 366;
45 
46   std::cout << "Approximate years: "
47             << approx_years
48             << std::endl;
49 
50   //getting day count
51  // usec_count / (seconds_per_day*usec_per_sec);
52   boost::int64_t day_count = 1000;
53   boost::int64_t usec_count1000 = day_count*microsec_per_day + 999999;
54   std::cout << "usec count at day 1000 + 999999: "
55             << usec_count1000
56             << std::endl;
57 
58   boost::int64_t day_count_calc = usec_count1000 / microsec_per_day;
59   std::cout << "calc day count at day 1000: "
60             << day_count_calc
61             << std::endl;
62 
63   boost::int64_t remaining_usec_count = usec_count1000 % microsec_per_day;
64   std::cout << "remaining usec count: "
65             << remaining_usec_count
66             << std::endl;
67 
68   boost::int32_t day_count3M = 3000000;
69   boost::int64_t usec_count3M = day_count3M*microsec_per_day + 999999;
70   std::cout << "usec count at day 3M + 999999: "
71             << usec_count3M
72             << std::endl;
73 
74   boost::int64_t day_count_calc3M = usec_count3M / microsec_per_day;
75   std::cout << "calc day count at day 3M: "
76             << day_count_calc3M
77             << std::endl;
78 
79   boost::int64_t remaining_usec_count3M = usec_count3M % microsec_per_day;
80   std::cout << "remaining usec count 3M: "
81             << remaining_usec_count3M
82             << std::endl;
83 
84 #endif
85 
86 //   std::cout << "Days from: "
87 //          << to_simple_string(d1) << " to "
88 //          << to_simple_string(d2) << " = "
89 //          << day_count << std::endl;
90 
91 
92   //  printTestStats();
93   return 0;
94 };
95 
96