int isdate(string date) как реализовать?
Как определить дата или мысор в string.
должна отпределять как сокрашенный тип 22.22.22, так и полный 22.22.2222.
должна возврашать 1 или 0.
Есть идеи?
1. Проверяете длину строки: если не 8 и не 10 -- это не дата
2. Проверяете строку на содержание только цифр и точек
3. Проверяете расположение точек на определенных позициях
4. Проверяете попадание чисел в допустимые диапазоны
можно исходник?
Код:
namespace ConsoleApplication
{
class Program
{
public static bool isDate(string undate)
{
char[] separ=new char[]{':'};
string[] hms = undate.Split(separ); //Разбить ":"
if (hms.Length != 3) return false;
foreach (var e in hms)
{
if (e.Length != 2) return false; //сверка длин
}
int h = Convert.ToInt32(hms[0], 10);
int m = Convert.ToInt32(hms[1], 10);
int s = Convert.ToInt32(hms[2], 10);
if ( //Проверка диапазона
(0 > h) || (24 < h)
||
(0 > m) || (60 < m)
||
(0 > s) || (60 < s)
)
{
return false;
}
return true;
}
static void Main(string[] args)
{
string date = "11:02:04";
Console.WriteLine(isDate(date));
}
}
}
{
class Program
{
public static bool isDate(string undate)
{
char[] separ=new char[]{':'};
string[] hms = undate.Split(separ); //Разбить ":"
if (hms.Length != 3) return false;
foreach (var e in hms)
{
if (e.Length != 2) return false; //сверка длин
}
int h = Convert.ToInt32(hms[0], 10);
int m = Convert.ToInt32(hms[1], 10);
int s = Convert.ToInt32(hms[2], 10);
if ( //Проверка диапазона
(0 > h) || (24 < h)
||
(0 > m) || (60 < m)
||
(0 > s) || (60 < s)
)
{
return false;
}
return true;
}
static void Main(string[] args)
{
string date = "11:02:04";
Console.WriteLine(isDate(date));
}
}
}
На С++ будет похоже, но более нудно и сложно.
P.S. Сорри немного. Вы просили дату - а я что-то со временем сбацал. Но суть таже. Ток поправить вам немного придется.