program c C#
using System;
namespace KC005
{
class Program
{
public bool NameAndSubname(string sb)
{
if (!(char.IsLetter(sb[0])) || !(char.IsUpper(sb[0])))
{
return false;
}
else
{
char[] tab = sb.ToCharArray();
tab[tab.Length - 1] = '\0';
foreach (char c in tab)
{
if (!(char.IsLetter(c)) && !(char.IsLower(c)) && (c != '\0')) return false;
}
}
return true;
}
public bool Date(string sb)
{
string[] tab = sb.Split('-');
int rok = int.Parse(tab[0]);
int miesiac = int.Parse(tab[1]);
int dzien = int.Parse(tab[2]);
if (rok >= 1900 && rok <= 2000)
{
if (miesiac >= 1 && miesiac <= 12)
{
switch (miesiac)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (dzien >= 1 && dzien <= 31) return true;
break;
case 2:
if (dzien >= 1 && ((dzien <= 28 && rok % 4 != 0) || (dzien <= 29 && rok % 4 == 0))) return true;
break;
case 4:
case 6:
case 9:
case 11:
if (dzien >= 1 && dzien <= 30) return true;
break;
default: break;
}
}
}
return false;
}
static void Main(string[] args)
{
Program p = new Program();
string formularz;
while ((formularz = Console.ReadLine()) != null)
{
string[] tab = formularz.Split(new Char[] { ' ' });
if (!(p.NameAndSubname(tab[1])))
{
Console.WriteLine("0"); // jesli tak to koniec
continue;
}
if (!(p.NameAndSubname(tab[3])))
{
Console.WriteLine("1");
continue;
}
if (!(p.Date(tab[6])))
{
Console.WriteLine("2");
continue;
}
Console.WriteLine("3");
}
}
}
}
ktos mi moze powiedziec dlaczego to nie dziala ? Na moich testach jest wszystko cacy