$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Christian Henning (chhenning_at_[hidden])
Date: 2006-03-21 16:22:32
Hi Dean, thanks for the answer.
Since, I know the format of the date strings I could also use
boost::regex for the general format and then feeding a date object
with the values. If I get an exception during the date object
contruction I know that the user provided me with garbage.
Here is some code:
   // date format: mm-dd-yyyy
   boost::regex oDateReg( "\\d{2}-\\d{2}-\\d{4}" );
   std::string strDate( "11-33-1997" );
   if( boost::regex_match( strDate
                         , oDateReg ))
   {
      try
      {
         std::string strMonth = strDate.substr( 0, 2 );
         std::string strDay   = strDate.substr( 3, 2 );
         std::string strYear  = strDate.substr( 6, 4 );
         unsigned int nYear  = boost::lexical_cast<unsigned int>(strYear);
         unsigned int nMonth = boost::lexical_cast<unsigned int>(strMonth);
         unsigned int nDay   = boost::lexical_cast<unsigned int>(strDay);
         date d( nYear, nMonth, nDay );
         date::ymd_type ymd = d.year_month_day();
      }
      catch( std::out_of_range oEx )
      {
         std::cout << "Error: " << oEx.what() << std::endl;
      }
   }
Any thoughts on that?
Thanks again,
Christian