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
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
96

source code of boost/libs/date_time/test/testint64_range.cpp