// Howard Hinnant // This work is licensed under a Creative Commons Attribution 4.0 International License. // http://creativecommons.org/licenses/by/4.0/ // durations // // using days = std::chrono::duration // , std::chrono::hours::period>>; // // using weeks = std::chrono::duration // , days::period>>; // // using years = std::chrono::duration // , days::period>>; // // using months = std::chrono::duration // >>; // // time_point // // using day_point = std::chrono::time_point; #include "date.h" #include static_assert(date::days{1} == std::chrono::seconds{86400}, ""); static_assert(date::days{1} == std::chrono::hours{24}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(date::weeks{1} == std::chrono::seconds{604800}, ""); static_assert(date::weeks{1} == date::days{7}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(date::months{1} == std::chrono::seconds{2629746}, ""); static_assert(date::days{30} < date::months{1} && date::months{1} < date::days{31}, ""); static_assert(date::weeks{4} < date::months{1} && date::months{1} < date::weeks{5}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert(date::years{1} == std::chrono::seconds{31556952}, ""); static_assert(date::days{365} < date::years{1} && date::years{1} < date::days{366}, ""); static_assert(date::weeks{52} < date::years{1} && date::years{1} < date::weeks{53}, ""); static_assert(date::years{1} == date::months{12}, ""); static_assert( std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert(!std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert( std::is_convertible{}, ""); static_assert(std::is_same{}, ""); int main() { }