Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/date_time/test/testint64_range.cpp @ 33

Last change on this file since 33 was 29, checked in by landauf, 17 years ago

updated boost from 1_33_1 to 1_34_1

File size: 2.8 KB
Line 
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 or http://www.boost.org/LICENSE-1.0)
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
13int
14main()
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
Note: See TracBrowser for help on using the repository browser.