160 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			160 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#ifndef DATE_TIME_SIMPLE_FORMAT_HPP___
							 | 
						||
| 
								 | 
							
								#define DATE_TIME_SIMPLE_FORMAT_HPP___
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Copyright (c) 2002,2003 CrystalClear Software, Inc.
							 | 
						||
| 
								 | 
							
								 * Use, modification and distribution is subject to the 
							 | 
						||
| 
								 | 
							
								 * Boost Software License, Version 1.0. (See accompanying
							 | 
						||
| 
								 | 
							
								 * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
							 | 
						||
| 
								 | 
							
								 * Author: Jeff Garland, Bart Garst
							 | 
						||
| 
								 | 
							
								 * $Date$
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "boost/date_time/parse_format_base.hpp"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace boost {
							 | 
						||
| 
								 | 
							
								namespace date_time {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//! Class to provide simple basic formatting rules
							 | 
						||
| 
								 | 
							
								template<class charT>
							 | 
						||
| 
								 | 
							
								class simple_format {
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  //! String used printed is date is invalid
							 | 
						||
| 
								 | 
							
								  static const charT* not_a_date()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return "not-a-date-time";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! String used to for positive infinity value
							 | 
						||
| 
								 | 
							
								  static const charT* pos_infinity()
							 | 
						||
| 
								 | 
							
								  {  
							 | 
						||
| 
								 | 
							
								    return "+infinity";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! String used to for positive infinity value
							 | 
						||
| 
								 | 
							
								  static const charT* neg_infinity()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return "-infinity";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! Describe month format
							 | 
						||
| 
								 | 
							
								  static month_format_spec month_format()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return month_as_short_string;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  static ymd_order_spec date_order()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return ymd_order_iso; //YYYY-MM-DD
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! This format uses '-' to separate date elements
							 | 
						||
| 
								 | 
							
								  static bool has_date_sep_chars()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return true;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! Char to sep?
							 | 
						||
| 
								 | 
							
								  static charT year_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return '-';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! char between year-month
							 | 
						||
| 
								 | 
							
								  static charT month_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return '-';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! Char to separate month-day
							 | 
						||
| 
								 | 
							
								  static charT day_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return '-';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! char between date-hours
							 | 
						||
| 
								 | 
							
								  static charT hour_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return ' ';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! char between hour and minute
							 | 
						||
| 
								 | 
							
								  static charT minute_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return ':';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! char for second
							 | 
						||
| 
								 | 
							
								  static charT second_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return ':';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//! Specialization of formmating rules for wchar_t
							 | 
						||
| 
								 | 
							
								template<>
							 | 
						||
| 
								 | 
							
								class simple_format<wchar_t> {
							 | 
						||
| 
								 | 
							
								public:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  //! String used printed is date is invalid
							 | 
						||
| 
								 | 
							
								  static const wchar_t* not_a_date()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return L"not-a-date-time";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! String used to for positive infinity value
							 | 
						||
| 
								 | 
							
								  static const wchar_t* pos_infinity()
							 | 
						||
| 
								 | 
							
								  {   
							 | 
						||
| 
								 | 
							
								    return L"+infinity";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! String used to for positive infinity value
							 | 
						||
| 
								 | 
							
								  static const wchar_t* neg_infinity()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return L"-infinity";
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! Describe month format
							 | 
						||
| 
								 | 
							
								  static month_format_spec month_format()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return month_as_short_string;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  static ymd_order_spec date_order()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return ymd_order_iso; //YYYY-MM-DD
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! This format uses '-' to separate date elements
							 | 
						||
| 
								 | 
							
								  static bool has_date_sep_chars()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return true;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! Char to sep?
							 | 
						||
| 
								 | 
							
								  static wchar_t year_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return '-';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! char between year-month
							 | 
						||
| 
								 | 
							
								  static wchar_t month_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return '-';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! Char to separate month-day
							 | 
						||
| 
								 | 
							
								  static wchar_t day_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return '-';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! char between date-hours
							 | 
						||
| 
								 | 
							
								  static wchar_t hour_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return ' ';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! char between hour and minute
							 | 
						||
| 
								 | 
							
								  static wchar_t minute_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return ':';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  //! char for second
							 | 
						||
| 
								 | 
							
								  static wchar_t second_sep_char()
							 | 
						||
| 
								 | 
							
								  {
							 | 
						||
| 
								 | 
							
								    return ':';
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // BOOST_NO_STD_WSTRING
							 | 
						||
| 
								 | 
							
								} } //namespace date_time
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |