⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 date_formatting_limited.hpp

📁 CGAL is a collaborative effort of several sites in Europe and Israel. The goal is to make the most i
💻 HPP
字号:
#ifndef DATE_TIME_DATE_FORMATTING_LIMITED_HPP___#define DATE_TIME_DATE_FORMATTING_LIMITED_HPP___/* Copyright (c) 2002-2004 CrystalClear Software, Inc. * Use, modification and distribution is subject to the  * Boost Software License, Version 1.0. (See accompanying * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0) * Author: Jeff Garland, Bart Garst * $Date: 2004/11/20 10:36:20 $ */#include "boost/date_time/iso_format.hpp"#include "boost/date_time/compiler_config.hpp"#include <string>#include <sstream>#include <iomanip>namespace boost {namespace date_time {  //! Formats a month as as string into an ostream  template<class month_type, class format_type>  class month_formatter  {  public:    //! Formats a month as as string into an ostream    /*! This function demands that month_type provide     *  functions for converting to short and long strings     *  if that capability is used.     */    static std::ostream& format_month(const month_type& month,                                      std::ostream& os)    {      switch (format_type::month_format())       {        case month_as_short_string:         {           os << month.as_short_string();           break;        }        case month_as_long_string:         {           os << month.as_long_string();           break;        }        case month_as_integer:         {           os << std::setw(2) << std::setfill('0') << month.as_number();          break;        }           }      return os;    } // format_month  };  //! Convert ymd to a standard string formatting policies  template<class ymd_type, class format_type>  class ymd_formatter  {  public:    //! Convert ymd to a standard string formatting policies    /*! This is standard code for handling date formatting with     *  year-month-day based date information.  This function      *  uses the format_type to control whether the string will     *  contain separator characters, and if so what the character     *  will be.  In addtion, it can format the month as either     *  an integer or a string as controled by the formatting      *  policy     */     static std::string ymd_to_string(ymd_type ymd)    {      typedef typename ymd_type::month_type month_type;      std::ostringstream ss;      ss << ymd.year;      if (format_type::has_date_sep_chars()) {        ss << format_type::month_sep_char();      }      //this name is a bit ugly, oh well....      month_formatter<month_type,format_type>::format_month(ymd.month, ss);      if (format_type::has_date_sep_chars()) {        ss << format_type::day_sep_char();      }      ss  << std::setw(2) << std::setfill('0')           << ymd.day;      return ss.str();    }  };  //! Convert a date to string using format policies  template<class date_type, class format_type>  class date_formatter  {  public:    //! Convert to a date to standard string using format policies    static std::string date_to_string(date_type d)    {      typedef typename date_type::ymd_type ymd_type;      if (d.is_not_a_date()) {        return format_type::not_a_date();      }      if (d.is_neg_infinity()) {        return format_type::neg_infinity();      }      if (d.is_pos_infinity()) {        return format_type::pos_infinity();      }      ymd_type ymd = d.year_month_day();      return ymd_formatter<ymd_type, format_type>::ymd_to_string(ymd);    }      };} } //namespace date_time#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -