File indexing completed on 2025-01-18 09:30:34
0001 #ifndef GREGORIAN_FORMATTERS_HPP___
0002 #define GREGORIAN_FORMATTERS_HPP___
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "boost/date_time/compiler_config.hpp"
0013 #include "boost/date_time/gregorian/gregorian_types.hpp"
0014 #if defined(BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS)
0015 #include "boost/date_time/date_formatting_limited.hpp"
0016 #else
0017 #include "boost/date_time/date_formatting.hpp"
0018 #endif
0019 #include "boost/date_time/iso_format.hpp"
0020 #include "boost/date_time/date_format_simple.hpp"
0021
0022
0023
0024
0025
0026
0027 namespace boost {
0028 namespace gregorian {
0029
0030
0031 template<class charT>
0032 inline
0033 std::basic_string<charT> to_simple_string_type(const date& d) {
0034 return date_time::date_formatter<date,date_time::simple_format<charT>,charT>::date_to_string(d);
0035 }
0036
0037
0038
0039 inline std::string to_simple_string(const date& d) {
0040 return to_simple_string_type<char>(d);
0041 }
0042
0043
0044
0045 template<class charT>
0046 inline std::basic_string<charT> to_simple_string_type(const date_period& d) {
0047 typedef std::basic_string<charT> string_type;
0048 charT b = '[', m = '/', e=']';
0049
0050 string_type d1(date_time::date_formatter<date,date_time::simple_format<charT>,charT>::date_to_string(d.begin()));
0051 string_type d2(date_time::date_formatter<date,date_time::simple_format<charT>,charT>::date_to_string(d.last()));
0052 return string_type(b + d1 + m + d2 + e);
0053 }
0054
0055
0056
0057 inline std::string to_simple_string(const date_period& d) {
0058 return to_simple_string_type<char>(d);
0059 }
0060
0061
0062 template<class charT>
0063 inline std::basic_string<charT> to_iso_string_type(const date_period& d) {
0064 charT sep = '/';
0065 std::basic_string<charT> s(date_time::date_formatter<date,date_time::iso_format<charT>,charT>::date_to_string(d.begin()));
0066 return s + sep + date_time::date_formatter<date,date_time::iso_format<charT>,charT>::date_to_string(d.last());
0067 }
0068
0069
0070
0071 inline std::string to_iso_string(const date_period& d) {
0072 return to_iso_string_type<char>(d);
0073 }
0074
0075
0076
0077 template<class charT>
0078 inline std::basic_string<charT> to_iso_extended_string_type(const date& d) {
0079 return date_time::date_formatter<date,date_time::iso_extended_format<charT>,charT>::date_to_string(d);
0080 }
0081
0082
0083
0084 inline std::string to_iso_extended_string(const date& d) {
0085 return to_iso_extended_string_type<char>(d);
0086 }
0087
0088
0089 template<class charT>
0090 inline std::basic_string<charT> to_iso_string_type(const date& d) {
0091 return date_time::date_formatter<date,date_time::iso_format<charT>,charT>::date_to_string(d);
0092 }
0093
0094
0095
0096 inline std::string to_iso_string(const date& d) {
0097 return to_iso_string_type<char>(d);
0098 }
0099
0100
0101
0102
0103
0104 template<class charT>
0105 inline std::basic_string<charT> to_sql_string_type(const date& d)
0106 {
0107 date::ymd_type ymd = d.year_month_day();
0108 std::basic_ostringstream<charT> ss;
0109 ss << ymd.year << "-"
0110 << std::setw(2) << std::setfill(ss.widen('0'))
0111 << ymd.month.as_number()
0112 << "-"
0113 << std::setw(2) << std::setfill(ss.widen('0'))
0114 << ymd.day;
0115 return ss.str();
0116 }
0117 inline std::string to_sql_string(const date& d) {
0118 return to_sql_string_type<char>(d);
0119 }
0120
0121
0122 #if !defined(BOOST_NO_STD_WSTRING)
0123
0124
0125
0126 inline std::wstring to_simple_wstring(const date_period& d) {
0127 return to_simple_string_type<wchar_t>(d);
0128 }
0129
0130
0131
0132 inline std::wstring to_simple_wstring(const date& d) {
0133 return to_simple_string_type<wchar_t>(d);
0134 }
0135
0136
0137
0138 inline std::wstring to_iso_wstring(const date_period& d) {
0139 return to_iso_string_type<wchar_t>(d);
0140 }
0141
0142
0143
0144 inline std::wstring to_iso_extended_wstring(const date& d) {
0145 return to_iso_extended_string_type<wchar_t>(d);
0146 }
0147
0148
0149
0150 inline std::wstring to_iso_wstring(const date& d) {
0151 return to_iso_string_type<wchar_t>(d);
0152 }
0153 inline std::wstring to_sql_wstring(const date& d) {
0154 return to_sql_string_type<wchar_t>(d);
0155 }
0156 #endif
0157
0158 } }
0159
0160
0161 #endif
0162