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); }
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); }