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()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