示例#1
0
        public leitura efetuaLeitura(string nome, DateTime dataNasc)
        {
            leitura    l = new leitura();
            caminho    c = new caminho();
            realizacao r = new realizacao();

            nome = nome.ToUpper();


            // quebra o nome onde tem espaço e converte pra lista
            List <string>       nomes      = nome.Split(' ').ToList();
            List <List <char> > nomes2     = new List <List <char> >();
            List <List <int> >  vogais     = new List <List <int> >();
            List <List <int> >  consoantes = new List <List <int> >();

            nomes.ForEach(i => nomes2.Add(quebraEmChar(i)));

            foreach (List <char> lista in nomes2)
            {
                List <int> vogaisIn     = new List <int>();
                List <int> consoantesIn = new List <int>();
                foreach (char x in lista)
                {
                    if (isVogal(x))
                    {
                        vogaisIn.Add(ConvertePraNumero(x));
                    }
                    else
                    {
                        consoantesIn.Add(ConvertePraNumero(x));
                    }
                }
                if (vogaisIn.Any())
                {
                    vogais.Add(vogaisIn);
                }
                if (consoantesIn.Any())
                {
                    consoantes.Add(consoantesIn);
                }
            }

            l.MO  = calculaMO(vogais);
            l.EU  = calculaEU(consoantes);
            l.EX  = calculaEX(l.MO, l.EU);
            c     = usaNasc(dataNasc);
            l.CD  = c.CD;
            l.C1  = c.C1;
            l.C2  = c.C2;
            l.C3  = c.C3;
            l.D1  = c.D1;
            l.D2  = c.D2;
            l.DM  = c.DM;
            l.R1  = c.R1;
            l.R2  = c.R2;
            l.R3  = c.R3;
            l.R4  = c.R4;
            r     = calculaRs(l.CD);
            l.iR1 = r.iR1;
            l.iR2 = r.iR2;
            l.iR3 = r.iR3;

            return(l);
        }
示例#2
0
        private caminho usaNasc(DateTime dataNasc)
        {
            int     auxDia = 0, auxMes = 0, auxAno = 0;
            caminho C = new caminho();

            C.C2 = dataNasc.Day; // neste ponto, C.C2 pode não representar o valor de C2
            if (C.C2 >= 10 && C.C2 != 11 && C.C2 != 22)
            {
                C.C2 = 1 + (C.C2 - 1) % 9; // Neste ponto, C.C2 definitivamente representa C2.
            }
            C.C1 = dataNasc.Month;
            if (C.C1 >= 10 && C.C1 != 11 && C.C1 != 22)
            {
                C.C1 = 1 + (C.C1 - 1) % 9;
            }
            C.C3 = dataNasc.Year;
            if (C.C3 >= 10 && C.C3 != 11 && C.C3 != 22)
            {
                C.C3 = 1 + (C.C3 - 1) % 9;
            }
            // As linha de código seguintes reduzem todos os C.C* para apenas um digito e os soma para encontrar CD
            auxDia = (1 + (C.C2 - 1) % 9);
            auxMes = (1 + (C.C1 - 1) % 9);
            auxAno = (1 + (C.C3 - 1) % 9);
            C.CD   = auxDia + auxAno + auxMes;
            if (C.CD >= 10 && C.CD != 11 && C.CD != 22)
            {
                C.CD = 1 + (C.CD - 1) % 9;
            }

            // Cálculo dos Desafios
            C.D1 = auxDia - auxMes;
            C.D1 = Math.Abs(C.D1);
            C.D2 = auxMes - auxAno;
            C.D2 = Math.Abs(C.D2);
            C.DM = C.D1 - C.D2;
            C.DM = Math.Abs(C.DM);

            // Cáluclo das Realizações
            C.R1 = auxDia + auxMes;
            if (C.R1 >= 10 && C.R1 != 11 && C.R1 != 22)
            {
                C.R1 = 1 + (C.R1 - 1) % 9;
            }
            C.R2 = auxDia + auxAno;
            if (C.R2 >= 10 && C.R2 != 11 && C.R2 != 22)
            {
                C.R2 = 1 + (C.R2 - 1) % 9;
            }
            C.R3 = C.R1 + C.R2;
            if (C.R3 >= 10 && C.R3 != 11 && C.R3 != 22)
            {
                C.R3 = 1 + (C.R3 - 1) % 9;
            }
            C.R4 = auxAno + auxMes;
            if (C.R4 >= 10 && C.R4 != 11 && C.R4 != 22)
            {
                C.R4 = 1 + (C.R4 - 1) % 9;
            }

            return(C);
        }