Untitled

 avatar
unknown
plain_text
a year ago
9.1 kB
8
Indexable
using System;
using System.Linq;

class Program
{
    static bool SprawdzImie(string imie)
    {
        // Sprawdzenie długości imienia
        if (imie.Length < 2 || imie.Length > 13)
            return false;

        // Sprawdzenie czy pierwsza litera jest wielka
        if (!char.IsUpper(imie[0]))
            return false;

        // Sprawdzenie czy wszystkie pozostałe litery są małe
        if (imie.Skip(1).Any(c => char.IsUpper(c)))
            return false;

        // Sprawdzenie czy imię nie zawiera cyfr
        if (imie.Any(char.IsDigit))
            return false;

        return true;
    }
    static bool SprawdzNazwisko(string nazwisko)
    {
        // Sprawdzenie długości nazwiska
        if (nazwisko.Length < 2 || nazwisko.Length > 20)
            return false;

        // Podział nazwiska na człony (jeśli występuje)
        string[] czlonyNazwiska = nazwisko.Split('-');

        // Sprawdzenie każdego członu nazwiska
        foreach (string czlon in czlonyNazwiska)
        {
            // Sprawdzenie czy pierwsza litera jest wielka
            if (!char.IsUpper(czlon[0]))
                return false;

            // Sprawdzenie czy wszystkie pozostałe litery są małe
            if (czlon.Skip(1).Any(c => char.IsUpper(c)))
                return false;

            // Sprawdzenie czy człon nazwiska nie zawiera cyfr
            if (czlon.Any(char.IsDigit))
                return false;
        }

        return true;
    }
    static bool SprawdzNumerTelefonu(string numer)
    {
        // Sprawdzenie długości numeru

        // Sprawdzenie czy numer zawiera tylko cyfry
        if (!numer.All(char.IsDigit) && !numer.StartsWith("+"))
            return false;

        // Sprawdzenie, czy numer zaczyna się od "+"
        if (numer.StartsWith("+"))
        {
            // Dla numeru zaczynającego się od "+", sprawdzenie długości
            if (numer.Length < 11 || numer.Length > 13)
                return false;
        }
        else
        {
            // Dla numeru bez "+", sprawdzenie czy ma dokładnie 9 cyfr
            if (numer.Length != 9)
                return false;
        }

        return true;
    }
    static void Pesel(string pesel)
    {
        int pierwszeDwieCyfry = int.Parse(pesel.Substring(0, 2));
        int trzeciaCyfra = int.Parse(pesel.Substring(2, 1));
        int czwartaCyfra = int.Parse(pesel.Substring(3, 1));
        int piataszostaCyfra = int.Parse(pesel.Substring(4, 2));
        Console.WriteLine(pierwszeDwieCyfry);
        Console.WriteLine(trzeciaCyfra);
        Console.WriteLine(czwartaCyfra);
        Console.WriteLine(piataszostaCyfra);
    }

    //01234567890
    static bool SprawdzPesel(string pesel)
    {
        // Sprawdzenie długości numeru PESEL
        if (pesel.Length != 11)
            return false;

        // Sprawdzenie, czy PESEL składa się tylko z cyfr
        if (!pesel.All(char.IsDigit))
            return false;

        // Sprawdzenie pierwszych dwóch cyfr
        int pierwszeDwieCyfry = int.Parse(pesel.Substring(0, 2));
        int trzeciaCyfra = int.Parse(pesel.Substring(2, 1));
        int czwartaCyfra = int.Parse(pesel.Substring(3, 1));
        int piataISzostaCyfra = int.Parse(pesel.Substring(4, 2));

        if ((pierwszeDwieCyfry >= 0 && pierwszeDwieCyfry <= 12) && !(trzeciaCyfra == 1 || trzeciaCyfra == 2))
            return false;

        if ((pierwszeDwieCyfry >= 13 && pierwszeDwieCyfry <= 24) && !(trzeciaCyfra == 0 || trzeciaCyfra == 1 || trzeciaCyfra == 2))
            return false;

        if (pierwszeDwieCyfry >= 24 && pierwszeDwieCyfry <= 99)
        {
            if (!(trzeciaCyfra == 0 || trzeciaCyfra == 1))
                return false;

            if (trzeciaCyfra == 1 && !(czwartaCyfra >= 0 && czwartaCyfra <= 2))
                return false;

            if (trzeciaCyfra == 0 && !(czwartaCyfra >= 1 && czwartaCyfra <= 9))
                return false;
        }

        // Sprawdzenie piątej i szóstej cyfry
        if (piataISzostaCyfra < 1 || piataISzostaCyfra > 31)
            return false;

        return true;
    }
    static void Main(string[] args)
    {
         // Przykłady użycia

        /*Console.WriteLine(SprawdzImie("Jan"));           // True
        Console.WriteLine(SprawdzImie("jan"));           // False (pierwsza litera nie jest wielka)
        Console.WriteLine(SprawdzImie("Jan1"));          // False (cyfra w imieniu)
        Console.WriteLine(SprawdzImie("JanKowalski"));  // False (imię złożone z więcej niż 13 liter)
       */

        Console.WriteLine(SprawdzNazwisko("Kowalski"));          // True
        Console.WriteLine(SprawdzNazwisko("Nowak-Jastrzębski"));// True
        Console.WriteLine(SprawdzNazwisko("Nowak-jastrzębski"));
        Console.WriteLine(SprawdzNazwisko("janowski"));           // False (pierwsza litera nie jest wielka)
        Console.WriteLine(SprawdzNazwisko("Jan1"));              // False (cyfra w nazwisku)
        Console.WriteLine(SprawdzNazwisko("Nowak-123"));         // False (cyfra w nazwisku)
        Console.WriteLine(SprawdzNazwisko("D"));                 // False (nazwisko zbyt krótkie)
        Console.WriteLine(SprawdzNazwisko("DługopolskiTomaszewskiNowak")); // False (nazwisko zbyt długie)

        Console.WriteLine("Numery");
        Console.WriteLine(SprawdzNumerTelefonu("+123456789"));        // false
        Console.WriteLine(SprawdzNumerTelefonu("123456789"));        // True
        Console.WriteLine(SprawdzNumerTelefonu("+48123456789"));     // True
        Console.WriteLine(SprawdzNumerTelefonu("+481234567891"));   // True
        Console.WriteLine(SprawdzNumerTelefonu("+481234567891"));// coś
        Console.WriteLine(SprawdzNumerTelefonu("+48"));              // False (zbyt krótki numer)
        Console.WriteLine(SprawdzNumerTelefonu("abc123456"));        // False (litera w numerze)
        Console.WriteLine(SprawdzNumerTelefonu("1234567890a"));      // False (litera w numerze)
        Console.WriteLine();
        Console.WriteLine("==========================================");
        Console.WriteLine("Pesel");
        Console.WriteLine("==========================================");
                                                           //Tak powinno wyjść                          //Tak wychodzi
        Console.WriteLine(SprawdzPesel("01234567890"));   // False                                      //False i dobrze bo dzień się nie zgadza
        Console.WriteLine(SprawdzPesel("01231567890"));   //True                                        //True osoba 01-12 dzien miesiąc się zgadzają
        Console.WriteLine(SprawdzPesel("11234567890"));   // False (niewłaściwa trzecia cyfra)          //False
        Console.WriteLine(SprawdzPesel("11031567890"));   // False                                      //False bo jest 0 na 3 cyfrze
        Console.WriteLine(SprawdzPesel("11131567890"));   // False                                      //True i to jest zle  bo 3 i czwarta tworzą 13 czyli więcej niż miesięcy
        Console.WriteLine("_________tu konczy się 01-12___________");

        Console.WriteLine(SprawdzPesel("13314567890"));   // False (niewłaściwe czwarta i piąta cyfra)  //False
        Console.WriteLine(SprawdzPesel("23456789012"));   // False                                       //False
        Console.WriteLine(SprawdzPesel("24678901234"));   // False (niewłaściwe trzecia)                //False
        Console.WriteLine(SprawdzPesel("31013167890"));   // True                                        //True Tu jest git 31 rocznik styczeń 31 dzień
        Console.WriteLine(SprawdzPesel("31213167890"));   //False                                        //False bo trzecia jest 2 a to 31 rocznik
        Console.WriteLine(SprawdzPesel("31124167890"));   //False                                        //False bo dzień 41
        Console.WriteLine(SprawdzPesel("31123267890"));   //False                                        //False bo 32 dzień miesiąca 
        Console.WriteLine("_________tu zaczyna się 99_____________");

        Console.WriteLine(SprawdzPesel("99100167890"));   // True                                       //True
        Console.WriteLine(SprawdzPesel("99211167890"));   // False                                      //False bo po 99 musi być 1 lub 0
        Console.WriteLine(SprawdzPesel("99011167890"));   // True                                       //True
        Console.WriteLine(SprawdzPesel("99301367890"));   // False                                      //False 3 też być nie może w 3 cyfrze
        Console.WriteLine(SprawdzPesel("99001367890"));   //False
        Console.WriteLine(SprawdzPesel("99131367890"));   //False                                       // False jest wpisane 13 miesiąc

        Pesel("12345678910");
        Console.ReadKey();
    }
}
Editor is loading...
Leave a Comment