У меня есть класс, который принимает строку в качестве параметра. Мне нужно распечатать дату в формате MM/DD/YYYY
, Ввод может быть exmaple: 03242014 или 3242014.
Я думал, используя SubString()
функция будет работать, но я не уверен, как. Какие-либо предложения?
Немного поздно, но с помощью substr
решение вашей проблемы может выглядеть так:
//formatDate(date)
//IN: str or int of form: 01234567 or 1234567
//OUT: str of form: 23/01/4567
string formatDate(const string& date)
{
string ret = date;
if(date.length() == 8)
{
ret = date.substr(0,2) + '/' +
date.substr(2,2) + '/' +
date.substr(4);
}
else if(date.length() == 7)
{
ret = '0' + date.substr(0,1) + '/' +
date.substr(1,2) + '/' +
date.substr(3);
}
return ret;
};
string formatDate(int i)
{
return formatDate(to_string(i));
}
Обратите внимание, что будет работать следующее:
cout << formatDate("03242014") <<'\n'
<< formatDate("3242014") <<'\n'
<< formatDate(3242014) <<'\n';
в то время как:
cout << formatDate(03242014) <<'\n'
не как 03242014
обозначает восьмеричное число.
Других решений пока нет …