Exemplo n.º 1
0
void convert(Date& date, const std::string& s)
{
    if (s.size() < 10 || s.at(4) != '-' || s.at(7) != '-')
    {
        throw ConversionError("Illegal date format");
    }

    const char* d = s.data();
    date = Date(getNumber4(d), getNumber2(d + 5), getNumber2(d + 8));
}
Exemplo n.º 2
0
  Date Date::fromIso(const std::string& s)
  {
    Date ret;
    const char* d = s.data();
    try
    {
      if (s.size() < 10
        || d[4] != '-'
        || d[7] != '-')
        throw TypeError();
      ret.set(getNumber4(d), getNumber2(d + 5), getNumber2(d + 8));
    }
    catch (const TypeError&)
    {
      throw TypeError("failed to convert string \"" + s + "\" into date");
    }

    return ret;
  }