1 #ifndef DATE_TIME_SIMPLE_FORMAT_HPP___ 2 #define DATE_TIME_SIMPLE_FORMAT_HPP___ 3 4 /* Copyright (c) 2002,2003 CrystalClear Software, Inc. 5 * Use, modification and distribution is subject to the 6 * Boost Software License, Version 1.0. (See accompanying 7 * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 8 * Author: Jeff Garland, Bart Garst 9 * $Date$ 10 */ 11 12 #include "boost/date_time/parse_format_base.hpp" 13 14 namespace boost { 15 namespace date_time { 16 17 //! Class to provide simple basic formatting rules 18 template<class charT> 19 class simple_format { 20 public: 21 22 //! String used printed is date is invalid not_a_date()23 static const charT* not_a_date() 24 { 25 return "not-a-date-time"; 26 } 27 //! String used to for positive infinity value pos_infinity()28 static const charT* pos_infinity() 29 { 30 return "+infinity"; 31 } 32 //! String used to for positive infinity value neg_infinity()33 static const charT* neg_infinity() 34 { 35 return "-infinity"; 36 } 37 //! Describe month format month_format()38 static month_format_spec month_format() 39 { 40 return month_as_short_string; 41 } date_order()42 static ymd_order_spec date_order() 43 { 44 return ymd_order_iso; //YYYY-MM-DD 45 } 46 //! This format uses '-' to separate date elements has_date_sep_chars()47 static bool has_date_sep_chars() 48 { 49 return true; 50 } 51 //! Char to sep? year_sep_char()52 static charT year_sep_char() 53 { 54 return '-'; 55 } 56 //! char between year-month month_sep_char()57 static charT month_sep_char() 58 { 59 return '-'; 60 } 61 //! Char to separate month-day day_sep_char()62 static charT day_sep_char() 63 { 64 return '-'; 65 } 66 //! char between date-hours hour_sep_char()67 static charT hour_sep_char() 68 { 69 return ' '; 70 } 71 //! char between hour and minute minute_sep_char()72 static charT minute_sep_char() 73 { 74 return ':'; 75 } 76 //! char for second second_sep_char()77 static charT second_sep_char() 78 { 79 return ':'; 80 } 81 82 }; 83 84 #ifndef BOOST_NO_STD_WSTRING 85 86 //! Specialization of formmating rules for wchar_t 87 template<> 88 class simple_format<wchar_t> { 89 public: 90 91 //! String used printed is date is invalid not_a_date()92 static const wchar_t* not_a_date() 93 { 94 return L"not-a-date-time"; 95 } 96 //! String used to for positive infinity value pos_infinity()97 static const wchar_t* pos_infinity() 98 { 99 return L"+infinity"; 100 } 101 //! String used to for positive infinity value neg_infinity()102 static const wchar_t* neg_infinity() 103 { 104 return L"-infinity"; 105 } 106 //! Describe month format month_format()107 static month_format_spec month_format() 108 { 109 return month_as_short_string; 110 } date_order()111 static ymd_order_spec date_order() 112 { 113 return ymd_order_iso; //YYYY-MM-DD 114 } 115 //! This format uses '-' to separate date elements has_date_sep_chars()116 static bool has_date_sep_chars() 117 { 118 return true; 119 } 120 //! Char to sep? year_sep_char()121 static wchar_t year_sep_char() 122 { 123 return '-'; 124 } 125 //! char between year-month month_sep_char()126 static wchar_t month_sep_char() 127 { 128 return '-'; 129 } 130 //! Char to separate month-day day_sep_char()131 static wchar_t day_sep_char() 132 { 133 return '-'; 134 } 135 //! char between date-hours hour_sep_char()136 static wchar_t hour_sep_char() 137 { 138 return ' '; 139 } 140 //! char between hour and minute minute_sep_char()141 static wchar_t minute_sep_char() 142 { 143 return ':'; 144 } 145 //! char for second second_sep_char()146 static wchar_t second_sep_char() 147 { 148 return ':'; 149 } 150 151 }; 152 153 #endif // BOOST_NO_STD_WSTRING 154 } } //namespace date_time 155 156 157 158 159 #endif 160